/* Bendito — identidad arquitectónica. Papel, tinta y tierra; tipografía editorial; líneas finas,
   grilla y aire. Pensado para el ojo de un arquitecto. */
:root{
  --papel:#f3f0e9;        /* papel de croquis, cálido */
  --panel:#fbfaf6;        /* hoja */
  --tinta:#1b1a17;        /* tinta, casi negro cálido */
  --tinta2:#6a655c;       /* gris cota */
  --tinta3:#9c968a;       /* anotación tenue */
  --linea:#e0dace;        /* trazo fino */
  --linea2:#cfc8b8;
  --tierra:#a8552e;       /* terracota — el acento, un solo gesto de color */
  --tierra-osc:#8c4526;
  --tierra-suave:#efe3d8;
  --sobre-tierra:#fdf8f4;  /* texto sobre el color de marca: se recalcula solo */
  --tierra-texto:#8c4526;  /* el color de marca, garantizado legible como texto */
  --carbon:#1c1a16;       /* secciones oscuras */
  --ok:#3f7d52; --alerta:#a83a2f;
  --sombra:0 1px 2px rgba(27,26,23,.04),0 14px 40px rgba(27,26,23,.06);
  --radio:10px;
  --serif:'Fraunces',Georgia,'Times New Roman',serif;
  --sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--sans);color:var(--tinta);background:var(--papel);line-height:1.55;
  -webkit-font-smoothing:antialiased;font-feature-settings:"ss01","cv05"}
a{color:var(--tierra-texto);text-decoration:none}
img{max-width:100%}
.cargando{padding:90px;text-align:center;color:var(--tinta2);font-size:14px}
.rotulo{font-size:11px;font-weight:600;letter-spacing:1.6px;text-transform:uppercase;color:var(--tinta3)}

button{font-family:inherit;cursor:pointer}
input,select,textarea{font-family:inherit;font-size:15px;width:100%;padding:11px 13px;border:1px solid var(--linea2);
  border-radius:8px;background:#fff;color:var(--tinta)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--tierra);box-shadow:0 0 0 3px var(--tierra-suave)}
label{display:block;font-size:11px;font-weight:600;letter-spacing:1.1px;text-transform:uppercase;color:var(--tinta2);margin-bottom:6px}
.campo{margin-bottom:16px}
.boton{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--tierra);color:var(--sobre-tierra);
  border:0;font-weight:600;font-size:14.5px;padding:12px 22px;border-radius:8px;transition:.14s;letter-spacing:.2px}
.boton:hover{background:var(--tierra-osc)}.boton:active{transform:translateY(1px)}
/* Un botón deshabilitado tiene que VERSE deshabilitado. El código ponía `b.disabled = true` en
   veinte lugares para que no se toque dos veces, pero se seguía viendo igual: el profesional lo
   tocaba de nuevo creyendo que no había pasado nada. El cursor de espera dice «ya salió, aguantá». */
.boton:disabled,.boton[disabled]{opacity:.55;cursor:progress;pointer-events:none}
.boton:disabled:hover,.boton[disabled]:hover{background:var(--tierra)}
.boton.claro:disabled:hover{background:transparent}
/* Y el foco visible: hay gente que navega con el teclado, y sin esto no sabe dónde está parada. */
.boton:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,
a:focus-visible,button:focus-visible{outline:2px solid var(--tierra);outline-offset:2px}
.boton.ancho{width:100%}
.boton.claro{background:transparent;color:var(--tinta);border:1px solid var(--linea2)}
.boton.claro:hover{border-color:var(--tinta);background:#fff}
.boton.chico{padding:8px 15px;font-size:13px}
/* contraseña con ojito + aviso de email */
.clave-wrap{position:relative}
.clave-wrap input{padding-right:46px}
.ojito{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:0;
  font-size:17px;line-height:1;opacity:.6;cursor:pointer;padding:7px;border-radius:6px}
.ojito:hover{opacity:1;background:var(--papel)}
.hint{font-size:12.5px;color:var(--alerta);margin-top:6px;line-height:1.4}
.hola-prof{color:#e6a883;font-size:13px;font-weight:600;letter-spacing:.4px;margin-bottom:3px;position:relative}

/* ---------- logotipo ---------- */
.logo-b{font-family:var(--serif);font-weight:600;font-size:23px;letter-spacing:.3px;display:inline-flex;align-items:center;gap:11px}
.logo-b .marca{width:30px;height:30px;border-radius:8px;flex:0 0 30px}
.logo-b .plomo{width:11px;height:11px;border:1.5px solid currentColor;transform:rotate(45deg);opacity:.8}
.logo-b small{font-family:var(--sans);font-weight:500;font-size:11px;letter-spacing:1.4px;text-transform:uppercase;opacity:.55}

/* ---------------- Landing / auth ---------------- */
.hero{background:var(--carbon);color:#eae4d8;padding:26px 24px 76px;position:relative;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;opacity:.16;pointer-events:none;
  background-image:linear-gradient(var(--tierra) .5px,transparent .5px),linear-gradient(90deg,var(--tierra) .5px,transparent .5px);
  background-size:44px 44px;mask-image:radial-gradient(120% 90% at 70% 0%,#000,transparent 75%)}
.nav{max-width:1120px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;position:relative}
.hero-cuerpo{max-width:1120px;margin:64px auto 0;display:grid;grid-template-columns:1.1fr .85fr;gap:52px;align-items:center;position:relative}
.hero h1{font-family:var(--serif);font-size:56px;line-height:1.02;font-weight:500;letter-spacing:-1.5px;
  font-optical-sizing:auto}
.hero h1 em{font-style:italic;color:#e6a883}
.hero p.baja{font-size:18px;color:#c9c2b4;margin-top:20px;max-width:520px;line-height:1.6}
.hero .puntos{margin-top:26px;display:flex;flex-wrap:wrap;gap:9px}
.hero .puntos span{border:1px solid rgba(234,228,216,.22);padding:7px 14px;border-radius:999px;font-size:13px;color:#d8d1c3}
.tarjeta-auth{background:var(--panel);color:var(--tinta);border-radius:16px;padding:28px;box-shadow:0 30px 70px rgba(0,0,0,.32);position:relative}
.tarjeta-auth h2{font-family:var(--serif);font-weight:500;font-size:24px;letter-spacing:-.4px;margin-bottom:3px}
.tarjeta-auth .sub{font-size:13.5px;color:var(--tinta2);margin-bottom:20px}
.tabs-auth{display:flex;gap:4px;background:var(--papel);padding:4px;border-radius:9px;margin-bottom:20px;border:1px solid var(--linea)}
.tabs-auth button{flex:1;border:0;background:transparent;padding:9px;border-radius:7px;font-weight:600;font-size:13.5px;color:var(--tinta2)}
.tabs-auth button.on{background:#fff;color:var(--tierra-texto);box-shadow:var(--sombra)}
.beneficios{max-width:1120px;margin:60px auto;padding:0 24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(232px,1fr));gap:1px;background:var(--linea);border:1px solid var(--linea);border-radius:var(--radio);overflow:hidden}
.benef{background:var(--panel);padding:26px 24px}
.benef .n{font-family:var(--serif);font-size:15px;color:var(--tierra-texto);margin-bottom:14px}
.benef h3{font-size:16px;margin-bottom:6px;font-weight:600}
.benef p{font-size:14px;color:var(--tinta2)}
.pie-landing{text-align:center;padding:34px;color:var(--tinta3);font-size:12.5px;letter-spacing:.4px}
.pie-landing .links-legales{margin-top:10px}
.pie-landing .links-legales a{color:var(--tinta2)}
.aviso-legal{font-size:12px;color:var(--tinta3);text-align:center;margin-top:12px;line-height:1.5}
.check-legal{display:flex;align-items:flex-start;gap:9px;font-size:12.5px;color:var(--tinta2);line-height:1.45;margin:4px 0 16px;cursor:pointer}
.check-legal input{width:auto;margin-top:2px;flex:0 0 auto;accent-color:var(--tierra)}
.check-legal a{color:var(--tierra-texto);font-weight:500}
.aviso-legal a{color:var(--tierra-texto);font-weight:500}

/* ---------------- App (logueado) ---------------- */
.layout{display:grid;grid-template-columns:256px 1fr;min-height:100vh}
.lateral{background:var(--carbon);color:#c3bcae;padding:22px 16px;display:flex;flex-direction:column;
  position:sticky;top:0;align-self:start;height:100vh;overflow-y:auto}
.marca-est{display:flex;align-items:center;gap:12px;padding:4px 8px 20px;margin-bottom:6px;border-bottom:1px solid rgba(234,228,216,.1)}
.marca-est img{width:40px;height:40px;border-radius:8px;object-fit:cover;background:#fff}
.marca-est .ini{width:40px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:700;color:#fff;font-size:15px}
.marca-est b{color:#f2ece0;font-size:14.5px;line-height:1.25;font-weight:600}
.marca-est span{font-size:11px;opacity:.55;letter-spacing:.3px}
/* Subtítulo de cada espacio de trabajo. Una línea fina arriba separa los grupos sin ocupar lugar. */
.grupo-nav{font-size:10px;text-transform:uppercase;letter-spacing:1.6px;color:#8a8375;
  margin:18px 10px 7px;padding-top:14px;border-top:1px solid rgba(242,236,224,.09)}
.grupo-nav:first-of-type{margin-top:6px;padding-top:0;border-top:0}
.lateral a{display:flex;align-items:center;gap:11px;color:#c3bcae;padding:9px 11px;border-radius:7px;font-size:14px;font-weight:500;letter-spacing:.1px}
.lateral a .g{width:16px;text-align:center;opacity:.7;font-size:13px}
.lateral a:hover{background:rgba(234,228,216,.06);color:#fff}
.lateral a.activo{background:var(--tierra);color:var(--sobre-tierra)}
.lateral a.activo .g{opacity:1}
.lateral .pie{margin-top:auto;font-size:12px;color:#8b8477;padding:14px 10px 0;border-top:1px solid rgba(234,228,216,.1);letter-spacing:.2px}
main{padding:34px 46px;max-width:none;width:100%;min-height:100vh;display:flex;flex-direction:column}
#main{flex:1 0 auto}
.verso{margin-top:44px;padding-top:22px;border-top:1px solid var(--linea);text-align:center;
  font-family:var(--serif);font-style:italic;font-size:15px;color:var(--tinta2);letter-spacing:.2px}
.verso .cita{display:block;font-family:var(--sans);font-style:normal;font-size:10.5px;letter-spacing:1.7px;
  text-transform:uppercase;color:var(--tinta3);margin-top:7px}
.verso.claro{border-top:0;margin-top:0;margin-bottom:16px;color:#b6ad9d}
.verso.claro .cita{color:#8b8574}
.admin-link{display:block;margin:6px 6px 0;padding:9px 11px;border-radius:7px;font-size:12.5px;
  color:#d7a883;border:1px solid rgba(209,118,63,.34);text-align:center;letter-spacing:.3px}
.admin-link:hover{background:rgba(209,118,63,.14);color:#e8b791}
h1.tit{font-family:var(--serif);font-size:30px;font-weight:500;letter-spacing:-.6px}
.sub{color:var(--tinta2);font-size:15px;margin:6px 0 26px;max-width:620px}
.tarjeta{background:var(--panel);border:1px solid var(--linea);border-radius:var(--radio);padding:24px 26px;box-shadow:var(--sombra);margin-bottom:20px}
.tarjeta h3{font-family:var(--serif);font-weight:500;font-size:18px;margin-bottom:16px;letter-spacing:-.2px}
.grilla2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;margin-bottom:22px;background:var(--linea);border:1px solid var(--linea);border-radius:var(--radio);overflow:hidden}
.stat{background:var(--panel);padding:18px 20px}
.stat .n{font-family:var(--serif);font-size:28px;font-weight:500;letter-spacing:-.5px}.stat .t{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--tinta2);margin-top:2px}
.bienvenida{background:var(--carbon);color:#eae4d8;border-radius:var(--radio);padding:30px 32px;margin-bottom:24px;position:relative;overflow:hidden}
.bienvenida::before{content:"";position:absolute;inset:0;opacity:.14;
  background-image:linear-gradient(var(--tierra) .5px,transparent .5px),linear-gradient(90deg,var(--tierra) .5px,transparent .5px);
  background-size:40px 40px;mask-image:radial-gradient(100% 100% at 100% 0%,#000,transparent 70%)}
.bienvenida h2{font-family:var(--serif);font-size:24px;font-weight:500;position:relative}
.bienvenida p{color:#cbc4b6;margin-top:8px;max-width:560px;position:relative}
.logo-subir{display:flex;align-items:center;gap:18px}
.logo-prev{width:80px;height:80px;border-radius:10px;border:1px dashed var(--linea2);object-fit:cover;background:var(--papel);
  display:flex;align-items:center;justify-content:center;color:var(--tinta3);font-size:11px;text-align:center}
/* ---- Apariencia (color + tipografía) ---- */
.color-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.color-row input[type=color]{width:56px;height:40px;padding:3px;border-radius:8px;flex:0 0 auto;cursor:pointer}
.swatches{display:flex;gap:8px;flex-wrap:wrap}
.swatch{width:30px;height:30px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px var(--linea2);cursor:pointer;padding:0;transition:transform .1s}
.swatch:hover{transform:scale(1.12)}
.tipo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.tipo-card{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;background:var(--panel);border:1px solid var(--linea2);border-radius:10px;padding:12px 14px;cursor:pointer;transition:.12s}
.tipo-card:hover{border-color:var(--tinta)}
.tipo-card.on{border-color:var(--tierra);box-shadow:0 0 0 2px var(--tierra-suave)}
.tc-aa{font-size:26px;line-height:1;color:var(--tierra-texto)}
.tc-nombre{font-size:15px;font-weight:600;margin-top:6px}
.tc-nota{font-size:11.5px;color:var(--tinta2)}
.marca-preview{margin-top:22px;border-top:1px dashed var(--linea2);padding-top:18px}
.mp-hoja{max-width:440px;background:var(--panel);border:1px solid var(--linea);border-top:5px solid var(--tierra);border-radius:10px;padding:20px 22px;box-shadow:var(--sombra)}
.mp-top{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.mp-ini{width:44px;height:44px;border-radius:9px;background:var(--tierra);color:var(--sobre-tierra);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:17px;object-fit:cover;flex:0 0 auto}
.mp-nom{font-family:var(--serif);font-size:18px;font-weight:600;line-height:1.1}
.mp-rol{font-size:10.5px;text-transform:uppercase;letter-spacing:1px;color:var(--tinta2);margin-top:2px}
.mp-num{margin-left:auto;font-family:var(--serif);font-size:17px;font-weight:600;color:var(--tierra-texto)}
.mp-h1{font-family:var(--serif);font-size:17px;font-weight:600;margin-bottom:12px}
.mp-row{display:flex;justify-content:space-between;gap:12px;font-size:13.5px;padding:6px 0;border-bottom:1px solid var(--linea)}
.mp-total{display:flex;justify-content:space-between;gap:12px;padding:12px 0 4px;font-weight:600}
.mp-monto{font-family:var(--serif);font-size:20px;color:var(--tierra-texto)}
.mp-btn{margin-top:14px;display:inline-block;background:var(--tierra);color:var(--sobre-tierra);font-size:13.5px;font-weight:600;padding:9px 18px;border-radius:8px}
.aviso{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);background:var(--carbon);color:#f2ece0;
  padding:12px 22px;border-radius:9px;font-size:14px;box-shadow:0 12px 34px rgba(0,0,0,.3);z-index:50;max-width:90vw}
.aviso.mal{background:var(--alerta)}
.chip{display:inline-block;background:var(--tierra-suave);color:var(--tierra-osc);font-size:11px;font-weight:600;letter-spacing:.4px;padding:4px 11px;border-radius:999px}
.proximamente{opacity:.6}
.paso-item{display:flex;gap:13px;align-items:flex-start;padding:13px;border:1px solid var(--linea);border-radius:9px;cursor:pointer;transition:.12s}
.paso-item:hover{border-color:var(--linea2);background:#fff}

/* ---------- Presupuestos ---------- */
.fila-tit{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:22px}
.fila-tit .tit{margin-bottom:0}.fila-tit .sub{margin:6px 0 0}
.presu-fila{display:grid;grid-template-columns:74px 1fr auto auto;gap:16px;align-items:center;padding:15px 22px;border-bottom:1px solid var(--linea);cursor:pointer;transition:.12s}
.presu-fila:last-child{border-bottom:0}
.presu-fila:hover{background:#fff}
.pf-n{font-family:var(--serif);font-size:16px;color:var(--tierra-texto)}
.pf-cli{font-weight:600}
.pf-tit{font-size:12.5px;color:var(--tinta2)}
.pf-estado{font-size:12px;font-weight:600;letter-spacing:.3px}
.pf-total{font-family:var(--serif);font-size:17px;font-weight:500;text-align:right;font-variant-numeric:tabular-nums}
.pitem{display:grid;grid-template-columns:minmax(120px,1fr) 70px 66px 104px 100px 30px;gap:8px;align-items:center;margin-bottom:8px}
.pitem input{margin:0}
.pitem.cab{margin-bottom:10px;font-size:10.5px;text-transform:uppercase;letter-spacing:1px;color:var(--tinta2);font-weight:600}
.pitem.cab>div:nth-child(2),.pitem.cab>div:nth-child(3),.pitem.cab>div:nth-child(4),.pitem.cab>div:nth-child(5){text-align:right}
.i-cant,.i-precio{text-align:right}
.i-sub{text-align:right;font-variant-numeric:tabular-nums;color:var(--tinta2);font-size:14px}
.i-del{background:none;border:0;color:var(--tinta3);font-size:15px;cursor:pointer;border-radius:6px;padding:6px}
.i-del:hover{color:var(--alerta);background:var(--tierra-suave)}
.p-total-caja{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding-top:14px;border-top:2px solid var(--tinta);font-family:var(--serif);font-size:20px;font-weight:500}
.pitem.det{grid-template-columns:minmax(120px,1fr) 58px 58px 104px 104px;padding:11px 0;border-bottom:1px solid var(--linea);margin-bottom:0;font-size:14px;align-items:start}
.pitem.det>div:nth-child(2),.pitem.det>div:nth-child(3),.pitem.det>div:nth-child(4),.pitem.det>div:nth-child(5){text-align:right;font-variant-numeric:tabular-nums}
.pitem.det .det{font-size:12.5px;color:var(--tinta2);text-align:left}
.pitem.cab.det{border-bottom:2px solid var(--tinta);padding-bottom:9px}
.presu-resumen{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:16px;margin-bottom:18px}
.presu-resumen .et{font-size:10.5px;text-transform:uppercase;letter-spacing:1px;color:var(--tinta2);margin-bottom:4px}
.presu-resumen .v{font-size:16px;font-weight:600}
.presu-resumen .v-grande{font-family:var(--serif);font-size:26px;font-weight:500;color:var(--tierra-texto)}
.acciones-presu{display:flex;gap:10px;flex-wrap:wrap;border-top:1px solid var(--linea);padding-top:16px}
.estado-btns{display:flex;gap:8px;flex-wrap:wrap}
.chip-estado{background:transparent;border:1px solid var(--linea2);color:var(--tinta2);padding:8px 15px;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit}
.chip-estado:hover{border-color:var(--tinta)}

/* ---------- Obras y Cobros ---------- */
.obra-fila{display:grid;grid-template-columns:1fr 96px auto auto;gap:16px;align-items:center;padding:15px 22px;border-bottom:1px solid var(--linea);cursor:pointer;transition:.12s}
.obra-fila:last-child{border-bottom:0}.obra-fila:hover{background:#fff}
.ob-barra{height:8px;background:var(--linea);border-radius:5px;overflow:hidden}
.ob-fill{height:100%;background:linear-gradient(90deg,var(--tierra),#c98a5f);border-radius:5px;transition:width .3s}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:8px;padding:0;border:0;border-radius:5px;background:var(--linea);accent-color:var(--tierra);cursor:pointer}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:22px;height:22px;border-radius:50%;background:var(--tierra);border:3px solid #fff;box-shadow:var(--sombra);cursor:pointer}
input[type=range]::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--tierra);border:3px solid #fff;cursor:pointer}
.cobro-fila{display:flex;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid var(--linea)}
.cobro-fila:last-child{border-bottom:0}
.cf-fecha{font-size:12.5px;color:var(--tinta2);font-variant-numeric:tabular-nums;flex:0 0 84px}
.cf-mid{flex:1;min-width:0}
.cf-cli{font-weight:600}
.cf-det{font-size:12.5px;color:var(--tinta2)}
.cf-monto{font-family:var(--serif);font-size:16px;text-align:right;font-variant-numeric:tabular-nums}
.serv-fila{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--linea)}
.serv-fila:last-child{border-bottom:0}
.serv-nom{flex:1;min-width:0}
.serv-precio{font-family:var(--serif);font-size:15px;font-variant-numeric:tabular-nums;color:var(--tierra-texto)}
.grilla-serv{display:grid;grid-template-columns:1fr 120px 150px;gap:12px}
.ini-chip{width:38px;height:38px;border-radius:8px;background:var(--tierra);color:var(--sobre-tierra);display:flex;align-items:center;justify-content:center;font-weight:700;flex:0 0 38px;font-size:14px}
.items-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:6px}
.ajuste-tool{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--tinta2)}
.ajuste-tool input{width:78px}
.p-totales{margin-top:18px;border-top:1px solid var(--linea);padding-top:8px}
.p-totales .fila{display:flex;justify-content:space-between;padding:5px 2px;font-size:14px;color:var(--tinta2)}
.p-totales .fila.grande{border-top:2px solid var(--tinta);margin-top:6px;padding-top:12px;font-family:var(--serif);font-size:20px;font-weight:500;color:var(--tinta)}
.unirse-wrap{max-width:440px;margin:36px auto 0;position:relative;z-index:1}
.cliente-fila{display:flex;align-items:center;gap:14px;padding:15px 22px;border-bottom:1px solid var(--linea)}
.cliente-fila:last-child{border-bottom:0}
.boton.peligro{color:var(--alerta);border-color:var(--linea2)}
.boton.peligro:hover{background:var(--alerta);color:#fff;border-color:var(--alerta)}
.doc-fila{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--linea)}
.doc-fila:last-child{border-bottom:0}
.doc-ic{font-size:20px;flex:0 0 auto}
.cap-edit{border:1px solid var(--linea);border-radius:9px;padding:14px 14px 14px;margin-bottom:12px;position:relative}
.cap-edit .c-titulo{font-weight:600;margin-bottom:8px;padding-right:34px}
.cap-edit .i-del{position:absolute;top:12px;right:10px}
.img-edit{display:flex;gap:14px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--linea)}
.img-edit:last-child{border-bottom:0}
.img-edit img{width:96px;height:70px;object-fit:cover;border-radius:6px;border:1px solid var(--linea);flex:0 0 96px}
.ig-inc{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--tinta2);cursor:pointer;text-transform:none;letter-spacing:normal;font-weight:400}
.ig-inc input{width:auto}
.ig-tools{display:flex;align-items:center;gap:14px;margin-top:8px;flex-wrap:wrap}
.ig-size{width:auto;padding:6px 10px;font-size:13px}
.req-edit{display:flex;gap:8px;align-items:center;margin-bottom:8px}
.req-edit .rq-texto{flex:1}
.check-fila{display:flex;align-items:flex-start;gap:11px;padding:10px 0;border-bottom:1px solid var(--linea);cursor:pointer;font-size:14.5px;text-transform:none;letter-spacing:normal;font-weight:400;color:var(--tinta)}
.check-fila:last-child{border-bottom:0}
.check-fila input{width:auto;margin-top:3px;flex:0 0 auto;accent-color:var(--tierra)}
.check-fila .hecho{text-decoration:line-through;color:var(--tinta3)}
.agenda{display:flex;flex-direction:column;gap:8px}
.agenda-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--linea);border-radius:9px;cursor:pointer;transition:.12s}
.agenda-item:hover{border-color:var(--tierra);background:#fff}
.ag-ic{font-size:18px;flex:0 0 auto}
.ag-txt{flex:1;font-size:14.5px;font-weight:500}
.ag-go{color:var(--tierra-texto);font-weight:700}
.agenda-ok{color:var(--tinta2);font-size:14.5px;padding:6px 0}
.buscador{margin-bottom:14px;max-width:420px}
.ejemplo-cta{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;border:1px solid var(--tierra);background:var(--tierra-suave)}
.ejemplo-cta .boton{flex:0 0 auto}
.mapeo{border:1px solid var(--tierra);background:var(--tierra-suave);border-radius:10px;padding:16px;margin-bottom:14px}
.mapeo-preview{overflow-x:auto;border:1px solid var(--linea);border-radius:8px;background:#fff}
.mapeo-preview table{border-collapse:collapse;font-size:12.5px;width:100%}
.mapeo-preview td{border:1px solid var(--linea);padding:6px 9px;white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis}
.hub-fila{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--linea);cursor:pointer;transition:.12s}
.hub-fila:last-child{border-bottom:0}
.hub-fila:hover{color:var(--tierra-texto)}
.hub-ic{font-size:18px;flex:0 0 auto}
.hub-mid{flex:1;min-width:0;font-weight:600}
.hub-sub{font-size:12px;color:var(--tinta2);font-weight:400}
.hub-val{font-family:var(--serif);font-size:15px;font-variant-numeric:tabular-nums}
.hub-go{color:var(--tierra-texto);font-weight:700}
/* ---- Estado de cuenta ---- */
.cliente-fila{flex-wrap:wrap}
.clf-mid{flex:1 1 180px;min-width:0;cursor:pointer}
.saldo-chip{flex:0 0 auto;font-size:11.5px;font-weight:600;letter-spacing:.3px;padding:4px 10px;border-radius:999px;font-variant-numeric:tabular-nums;white-space:nowrap}
.saldo-chip.debe{background:var(--tierra-suave);color:var(--tierra-osc)}
.saldo-chip.favor{background:#e6eef5;color:#2f6f9e}
.cuenta-saldo{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;background:var(--panel);border:1px solid var(--linea);border-left:5px solid var(--tinta2);border-radius:var(--radio);padding:20px 24px;box-shadow:var(--sombra);margin-bottom:20px}
.cuenta-saldo.debe{border-left-color:var(--tierra)}
.cuenta-saldo.favor{border-left-color:#2f6f9e}
.cuenta-saldo.ok{border-left-color:#3f7d52}
.cs-et{font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--tinta2)}
.cs-monto{font-family:var(--serif);font-size:34px;font-weight:500;letter-spacing:-.5px;line-height:1.05;margin:2px 0 4px}
.cuenta-saldo.debe .cs-monto{color:var(--tierra-texto)}
.cuenta-saldo.favor .cs-monto{color:#2f6f9e}
.cuenta-saldo.ok .cs-monto{color:#3f7d52}
.cs-sub{font-size:13px;color:var(--tinta2)}
.cs-acc{display:flex;gap:8px;flex-wrap:wrap}
.cuenta-tabla-wrap{overflow-x:auto}
.cuenta-tabla{width:100%;border-collapse:collapse;font-size:14px}
.cuenta-tabla thead th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:1px;color:var(--tinta2);padding:0 10px 9px;border-bottom:2px solid var(--tinta);white-space:nowrap}
.cuenta-tabla th.num,.cuenta-tabla td.num{text-align:right}
.cuenta-tabla tbody td{padding:11px 10px;border-bottom:1px solid var(--linea);vertical-align:top}
.cuenta-tabla tbody tr[data-a]{cursor:pointer}
.cuenta-tabla tbody tr[data-a]:hover{background:var(--papel)}
.cuenta-tabla td.f{color:var(--tinta2);font-variant-numeric:tabular-nums;white-space:nowrap}
.cuenta-tabla td.num{font-variant-numeric:tabular-nums}
.cuenta-tabla td.pg{color:#3f7d52}
.cuenta-tabla td.sal{font-weight:600}
.cuenta-tabla .det{font-size:12px;color:var(--tinta2);margin-top:1px;font-weight:400}
/* ---- Facturación electrónica ARCA ---- */
.arca-banner{display:flex;align-items:center;gap:14px;padding:16px 20px;border:1px solid var(--tierra);background:var(--tierra-suave);border-radius:var(--radio);margin-bottom:20px;cursor:pointer;transition:.12s}
.arca-banner:hover{box-shadow:var(--sombra)}
.arca-banner.on{border-color:var(--ok);background:#eef5ef}
.ab-ic{font-size:24px;flex:0 0 auto}
.ab-mid{flex:1;min-width:0}
.ab-sub{font-size:13px;color:var(--tinta2);margin-top:2px}
.ab-go{color:var(--tierra-texto);font-weight:700;flex:0 0 auto}
.arca-banner.on .ab-go{color:var(--ok)}
.arca-pasos{margin:0;padding-left:20px;font-size:14px;line-height:1.7;color:var(--tinta)}
.arca-pasos li{margin:6px 0}
.arca-sub{margin:6px 0 6px;padding-left:18px;list-style:disc}
.arca-sub li{margin:3px 0;font-size:13.5px}
.af-tip{display:block;font-size:12.5px;color:var(--tinta2);margin-top:2px}
.arca-fase{display:flex;align-items:center;gap:10px;margin:18px 0 8px;font-size:15px}
.af-num{width:26px;height:26px;flex:0 0 auto;border-radius:50%;background:var(--tierra);color:var(--sobre-tierra);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}
.arca-alerta{display:block;font-size:13.5px;line-height:1.55;color:var(--tinta);background:#fdf3f1;border:1px solid var(--alerta);border-radius:9px;padding:12px 14px;margin:6px 0 10px}
.arca-nota{display:block;font-size:13px;line-height:1.5;color:var(--tinta2);background:var(--tierra-suave);border:1px solid var(--linea2);border-radius:9px;padding:11px 14px;margin-top:12px}
.arca-recorrido{display:flex;flex-direction:column;gap:12px;margin-bottom:6px}
.ar-paso{display:flex;gap:12px;align-items:flex-start}
.ar-n{width:28px;height:28px;flex:0 0 auto;border-radius:50%;background:var(--tinta);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}
.ar-d{font-size:13px;color:var(--tinta2);margin-top:2px;line-height:1.5}
.arca-checks{margin-top:14px;display:flex;flex-direction:column;gap:10px}
.arca-check{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--linea);border-radius:9px;background:#faf8f3}
.arca-check.error{border-color:var(--alerta);background:#fdf3f1}
.ac-ic{font-size:18px;flex:0 0 auto}
.ac-det{font-size:13px;color:var(--tinta2);margin-top:2px}
.ac-hacer{font-size:13px;color:var(--tinta);margin-top:6px;padding:8px 10px;background:#fff;border:1px dashed var(--linea2);border-radius:7px;line-height:1.5}
.arca-drop{display:flex;align-items:center;gap:12px;justify-content:center;padding:22px;border:2px dashed var(--linea2);border-radius:10px;background:var(--papel);cursor:pointer;text-align:center;transition:.12s;color:var(--tinta2);font-size:14px}
.arca-drop:hover,.arca-drop.drag{border-color:var(--tierra);background:var(--tierra-suave);color:var(--tierra-osc)}
.ad-ic{font-size:26px}
.mp-conectado{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--ok);background:#eef5ef;border-radius:9px}
.mp-ic{font-size:22px;flex:0 0 auto}
.mp-mid{flex:1;min-width:0}
/* ---- Honorarios por arancel ---- */
.hon-plantillas{display:flex;flex-wrap:wrap;gap:8px}
.chip-plantilla{background:var(--panel);border:1px solid var(--linea2);border-radius:999px;padding:8px 15px;font-size:13px;cursor:pointer;transition:.12s}
.chip-plantilla:hover{border-color:var(--tinta)}
.chip-plantilla.on{background:var(--tierra);color:var(--sobre-tierra);border-color:var(--tierra)}
.hon-cat{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--tinta2);font-weight:700;margin:16px 0 6px;padding-bottom:4px;border-bottom:1px solid var(--linea)}
.hon-serv{display:grid;grid-template-columns:1fr 66px 100px;grid-template-areas:"pick cant monto" "info info info";gap:2px 12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--linea);border-radius:6px;transition:.12s}
.hon-serv:last-child{border-bottom:0}
.hon-serv.on{background:var(--tierra-suave)}
.hon-pick{grid-area:pick;display:flex;align-items:center;gap:10px;cursor:pointer;text-transform:none;letter-spacing:normal;font-weight:400;margin:0;padding-left:8px}
.hon-pick input{width:auto;flex:0 0 auto;accent-color:var(--tierra);margin-top:0}
.hon-nom{font-weight:600;font-size:14.5px}
.hon-info{grid-area:info;font-size:11.5px;color:var(--tinta2);display:flex;flex-direction:column;gap:1px;padding-left:34px}
.hon-art{font-style:italic}
.hon-formula{color:var(--tierra-osc)}
.hon-cant{grid-area:cant;width:66px;text-align:center;padding:6px}
.hon-monto{grid-area:monto;font-family:var(--serif);font-size:15px;text-align:right;font-variant-numeric:tabular-nums;color:var(--tinta3);padding-right:8px}
.hon-serv.on .hon-monto{color:var(--tierra-texto)}
.hon-resultado{border:1px solid var(--tierra)}
.hon-ref{font-size:13px;color:var(--tinta2);line-height:1.55;background:var(--papel);border-radius:8px;padding:12px 14px;margin-top:2px}
/* ---- Documentación del cliente ---- */
.doc-fila-edit{display:grid;grid-template-columns:112px 1fr 1fr auto;gap:8px;align-items:center;margin-bottom:8px}
.doc-fila-edit .dfe-tipo{padding:9px 8px}
.doc-nota{background:var(--tierra-suave);border:1px solid var(--linea2);border-radius:9px;padding:11px 14px;font-size:13.5px;color:var(--tinta);margin:12px 0}
.doc-prog{display:flex;align-items:center;gap:12px;margin:16px 0}
.doc-prog-bar{flex:1;height:8px;border-radius:99px;background:var(--papel);overflow:hidden}
.doc-prog-bar i{display:block;height:100%;transition:width .4s}
.doc-prog span{font-size:12.5px;color:var(--tinta2);white-space:nowrap}
.doc-items{display:flex;flex-direction:column;gap:10px;margin-top:6px}
.doc-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--linea);border-radius:10px;background:var(--panel)}
.doc-item.ok{border-color:var(--ok);background:#f1f6f1}
.di-ic{font-size:20px;flex:0 0 auto}
.di-mid{flex:1;min-width:0}
.di-txt{font-weight:600;font-size:14.5px}
.di-nota{font-size:12.5px;color:var(--tinta2);margin-top:2px;overflow-wrap:anywhere}
.di-info{display:flex;gap:8px;margin-top:8px}
.di-resp{flex:1}
.di-btn{flex:0 0 auto;cursor:pointer}
@media (max-width:560px){
  .doc-fila-edit{grid-template-columns:1fr auto}
  .doc-fila-edit .dfe-tipo{grid-column:1}
  .doc-fila-edit .dfe-texto{grid-column:1 / -1}
  .doc-fila-edit .dfe-nota{grid-column:1 / -1}
}
.guia{border:1px solid var(--linea);border-radius:9px;background:#faf8f3}
.ayuda-mod{margin-bottom:20px}
.guia summary{cursor:pointer;padding:11px 14px;font-weight:600;font-size:13.5px;list-style:none}
.guia summary::-webkit-details-marker{display:none}
.guia[open] summary{border-bottom:1px solid var(--linea)}
.guia-body{padding:14px}
.guia-tabla{overflow-x:auto;border:1px solid var(--linea);border-radius:6px;background:#fff;margin-bottom:12px}
.guia-tabla table{border-collapse:collapse;font-size:11.5px;min-width:420px;width:100%}
.guia-tabla td,.guia-tabla th{border:1px solid var(--linea);padding:4px 8px;white-space:nowrap;text-align:left;font-weight:400;color:var(--tinta)}
.guia-tabla .rc{background:var(--papel);color:var(--tinta3);text-align:center;font-size:10.5px}
.guia-tabla .enc{background:var(--tierra-suave);color:var(--tierra-osc);font-weight:700}
.guia-tips{list-style:none;margin:0 0 12px;padding:0;font-size:12.5px;color:var(--tinta2);line-height:1.5}
.guia-tips li{display:flex;gap:8px;margin:6px 0}
.guia-tips .ok{color:var(--ok)}.guia-tips .no{color:var(--alerta)}

/* Barra y menú móvil (aparecen sólo en pantallas chicas) */
.barra-movil{display:none}
.backdrop{display:none}
@media(max-width:880px){
  .layout{grid-template-columns:1fr}
  .barra-movil{display:flex;align-items:center;justify-content:space-between;gap:10px;
    position:sticky;top:0;z-index:30;background:var(--carbon);padding:9px 12px}
  .barra-movil .menu-btn{background:transparent;border:0;color:#f2ece0;font-size:21px;
    width:36px;height:36px;border-radius:8px;line-height:1}
  .barra-movil .menu-btn:active{background:rgba(242,236,224,.12)}
  .lateral{display:flex;position:fixed;top:0;left:0;bottom:0;width:270px;max-width:82vw;z-index:40;
    transform:translateX(-100%);transition:transform .22s ease;overflow-y:auto}
  .layout.menu-abierto .lateral{transform:none;box-shadow:0 0 60px rgba(0,0,0,.55)}
  .layout.menu-abierto .backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:35}
  .grilla2{grid-template-columns:1fr}
  .pitem{grid-template-columns:repeat(4,1fr) auto}
  .pitem .i-concepto{grid-column:1/-1;margin-bottom:4px}
  .pitem.cab{display:none}
  .presu-fila{grid-template-columns:50px 1fr auto;gap:10px}
  .presu-fila .pf-estado{display:none}
  .pitem.det{grid-template-columns:1fr auto}
  .pitem.det>div:nth-child(2),.pitem.det>div:nth-child(3),.pitem.det>div:nth-child(4){display:none}
  .obra-fila{grid-template-columns:1fr auto}
  .obra-fila .ob-barra,.obra-fila .pf-estado{display:none}
  .cobro-fila .cf-fecha{display:none}
  .grilla-serv{grid-template-columns:1fr}
  .hero-cuerpo{grid-template-columns:1fr;gap:34px}.hero h1{font-size:38px}main{padding:22px}
}

/* ===================== Consultas (link público + bandeja de leads) ===================== */
/* --- Formulario público que ve el cliente potencial --- */
.cons-est{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.cons-est img{width:46px;height:46px;border-radius:10px;object-fit:cover}
.cons-ini{width:46px;height:46px;border-radius:10px;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:18px}
.cons-est b{font-size:17px;display:block}
.cons-perfil{font-size:12px;color:var(--tinta2)}
.cons-prog{display:flex;align-items:center;gap:10px;margin:4px 0 14px}
.cons-prog-bar{flex:1;height:7px;background:var(--linea);border-radius:99px;overflow:hidden}
.cons-prog-bar i{display:block;height:100%;border-radius:99px;transition:width .3s ease}
.cons-prog span{font-size:12px;color:var(--tinta2);white-space:nowrap;font-variant-numeric:tabular-nums}
.cons-titp{font-family:var(--serif);font-size:24px;margin-bottom:2px;display:flex;align-items:center;gap:8px}
.cons-form{display:flex;flex-direction:column;gap:16px;margin:18px 0 8px}
.cons-campo{display:flex;flex-direction:column;gap:7px}
.cons-lbl{font-size:14px;font-weight:600;color:var(--tinta)}
.cons-req{color:var(--alerta)}
.cons-ops{display:flex;flex-wrap:wrap;gap:8px}
.cons-op{padding:9px 15px;border:1px solid var(--linea2);border-radius:99px;background:var(--panel);
  font-size:14px;cursor:pointer;transition:all .12s ease;color:var(--tinta);font-family:inherit}
.cons-op:hover{border-color:var(--tierra);color:var(--tierra-texto)}
.cons-op.on{background:var(--tierra);border-color:var(--tierra);color:var(--sobre-tierra);font-weight:600}
.cons-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:22px}
.cons-nav .boton{min-width:120px}
.cons-gracias{text-align:center;padding:14px 0}
.cons-check{width:64px;height:64px;border-radius:50%;color:#fff;font-size:32px;display:flex;align-items:center;
  justify-content:center;margin:0 auto 16px;box-shadow:var(--sombra)}
.cons-gracias h2{font-family:var(--serif);font-size:26px;margin-bottom:6px}

/* --- Bandeja del estudio: link + leads --- */
.cons-link{border:1px solid var(--linea)}
.cons-link.on{border-color:var(--tierra-suave);box-shadow:0 0 0 3px var(--tierra-suave),var(--sombra)}
.cons-link-top{display:flex;align-items:center;justify-content:space-between;gap:14px}
.switch{position:relative;display:inline-block;width:46px;height:27px;flex:none;cursor:pointer}
.switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:2}
.switch-bola{position:absolute;inset:0;background:var(--linea2);border-radius:99px;transition:background .18s ease}
.switch-bola::before{content:"";position:absolute;top:3px;left:3px;width:21px;height:21px;background:#fff;
  border-radius:50%;transition:transform .18s ease;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.switch input:checked+.switch-bola{background:var(--tierra)}
.switch input:checked+.switch-bola::before{transform:translateX(19px)}
.cons-link-caja{display:flex;gap:8px;margin-top:14px}
.cons-link-caja input{background:var(--papel);font-size:13px;color:var(--tinta2)}
.cons-link-caja .boton{flex:none}
.cons-link-btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.cons-fila{display:flex;align-items:center;gap:12px;padding:15px 20px;border-bottom:1px solid var(--linea);cursor:pointer;transition:background .12s ease}
.cons-fila:last-child{border-bottom:none}
.cons-fila:hover{background:var(--papel)}
.cons-f-mid{flex:1;min-width:0}
.cons-f-nom{font-weight:600}
.cons-f-sub{font-size:12.5px;color:var(--tinta2)}
.cons-f-tag{font-size:15px}
.cons-f-est{font-size:12.5px;font-weight:600;white-space:nowrap}
.cons-contacto{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.cons-datos{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px 20px;flex:1;min-width:220px}
.cons-dato{display:flex;flex-direction:column;gap:2px}
.cons-dato span{font-size:11px;letter-spacing:.6px;text-transform:uppercase;color:var(--tinta3)}
.cons-dato b{font-size:14.5px;font-weight:600}
.cons-acc{display:flex;flex-direction:column;gap:8px;flex:none}
.cons-acc .boton{white-space:nowrap}
.cons-estado-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:18px;padding-top:16px;border-top:1px solid var(--linea)}
.cons-estado-row label{font-size:13px;color:var(--tinta2);font-weight:600}
.cons-estado-row select{width:auto;min-width:160px}
.cons-estado-row .boton{margin-left:auto}
.cons-presus{margin-top:12px;font-size:13.5px;color:var(--tinta2)}
.cons-presus a{cursor:pointer;font-weight:600}
.cons-alertas h3{margin-bottom:12px}
.cons-alerta{border-left:3px solid #c8912e;background:#faf4e8;border-radius:0 8px 8px 0;padding:11px 14px;margin-bottom:10px}
.cons-alerta:last-child{margin-bottom:0}
.cons-alerta.critica{border-left-color:var(--alerta);background:#fbecea}
.cons-al-org{font-weight:600;font-size:13.5px}
.cons-al-org span{color:var(--tinta2);font-weight:400}
.cons-al-txt{font-size:13.5px;color:var(--tinta);margin-top:3px;line-height:1.5}
.cons-objetivo{font-size:15px;line-height:1.6;white-space:pre-wrap}
.cons-resp{display:flex;flex-direction:column}
.cons-r{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px dashed var(--linea)}
.cons-r:last-child{border-bottom:none}
.cons-r-q{color:var(--tinta2);font-size:14px;flex:1}
.cons-r-v{font-weight:600;font-size:14px;text-align:right;flex:none;max-width:50%}
@media (max-width:560px){
  .cons-estado-row .boton{margin-left:0;width:100%}
  .cons-acc{flex-direction:row;width:100%}
  .cons-r{flex-direction:column;gap:2px}.cons-r-v{text-align:left;max-width:100%}
}

/* ===================== Mensajes listos ===================== */
.msg-chips{display:flex;flex-wrap:wrap;gap:8px}
.msg-chip{font-family:inherit;font-size:13.5px;font-weight:500;padding:8px 14px;border-radius:99px;
  border:1px solid var(--linea2);background:var(--panel);color:var(--tinta2);cursor:pointer;transition:all .12s}
.msg-chip:hover{border-color:var(--tierra);color:var(--tierra-texto)}
.msg-chip.on{background:var(--tierra);border-color:var(--tierra);color:var(--sobre-tierra)}
.msg-build{margin-top:16px;display:flex;flex-direction:column;gap:10px}
.msg-lbl{font-size:13px;font-weight:600;color:var(--tinta2)}
.msg-build textarea{width:100%;line-height:1.55;resize:vertical;white-space:pre-wrap}
.msg-nota{font-size:13px;color:var(--tinta2);background:var(--tierra-suave);border-radius:8px;padding:9px 12px}
.msg-acc{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:2px}

/* ===================== Tablero: necesita tu atención ===================== */
/* OJO: nombre distinto a ".aviso" (esa clase ya es el toast flotante position:fixed — reusarla
   hacía que estas tarjetas del tablero heredaran fixed/bottom/transform y se apilaran unas sobre otras). */
.tablero{display:flex;flex-direction:column;gap:9px}
.tab-aviso{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--linea);
  border-left:4px solid var(--linea2);border-radius:10px;background:var(--panel);transition:background .12s}
.tab-aviso[data-ir]{cursor:pointer}
.tab-aviso[data-ir]:hover{background:var(--papel)}
.tab-aviso.vencido{border-left-color:var(--alerta)}
.tab-aviso.pronto{border-left-color:#c8912e}
.tab-aviso.recordatorio{border-left-color:var(--tinta3)}
.av-punto{width:9px;height:9px;border-radius:50%;flex:none;background:var(--tinta3)}
.tab-aviso.vencido .av-punto{background:var(--alerta)}
.tab-aviso.pronto .av-punto{background:#c8912e}
.av-mid{flex:1;min-width:0}
.av-tit{font-weight:600;font-size:14.5px}
.av-det{font-size:13px;color:var(--tinta2);margin-top:2px}
.av-dato{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:14px}
.av-go{color:var(--tinta3);font-size:16px;flex:none}

/* ===================== Cronograma (Gantt) con cobros ===================== */
.gt-cab{display:grid;grid-template-columns:200px 1fr 130px;gap:12px;align-items:end;margin-bottom:6px}
.gt-semanas{display:grid;gap:2px}
.gt-sem{font-size:10px;color:var(--tinta3);text-align:center;font-variant-numeric:tabular-nums}
.gt{display:flex;flex-direction:column;gap:7px}
/* OJO: la columna de acciones NO puede ser fija. Cada cosa que se suma ahí (el tilde, el
   avance, cobrar, deshacer, quitar) la ensancha, y con medida fija se sale y pisa la barra.
   Con `auto` crece lo que necesite, y abajo de 900px la fila se apila. */
.gt-fila{display:grid;grid-template-columns:minmax(180px,220px) minmax(0,1fr) auto;
  gap:12px;align-items:center}
.gt-nom{min-width:0}
.gt-t{font-weight:600;font-size:14px;line-height:1.3}
.gt-d{font-size:12px;color:var(--tinta2);margin-top:1px}
.gt-d i{font-style:normal;opacity:.7}
.gt-cert{font-size:10.5px;font-weight:600;color:var(--ok);white-space:nowrap}
.gt-barra-wrap{min-width:0;overflow-x:auto}
/* Sin gap: la barra y la línea de hoy se posicionan por PORCENTAJE, y con separación entre
   celdas la cuenta no daría exacta. La separación se dibuja con una sombra adentro de la celda. */
.gt-grid{display:grid;gap:0;position:relative;min-height:28px;align-items:center}
.gt-cel{height:28px;background:var(--papel);border-radius:3px;box-shadow:inset -2px 0 0 var(--panel)}
/* La barra va SUPERPUESTA, nunca como celda: si ocupa columnas de la grilla, las celdas que
   no entran se van a una segunda fila y la tarea aparece partida en dos. Pasó, y se ve feo. */
.gt-barra{position:absolute;top:0;height:28px;border-radius:6px;background:var(--linea2);overflow:hidden;
  display:flex;align-items:center;justify-content:center;min-width:24px;z-index:1}
.gt-barra i{position:absolute;left:0;top:0;bottom:0;background:var(--tierra);opacity:.85}
.gt-barra span{position:relative;font-size:11px;font-weight:700;color:var(--sobre-tierra);text-shadow:0 1px 2px rgba(0,0,0,.25)}
.gt-barra.pendiente i{background:var(--tinta3)}
.gt-barra.hecha i{background:var(--ok)}
.gt-acc{display:flex;align-items:center;gap:6px;justify-content:flex-end}
.gt-tick input{width:20px;height:20px;accent-color:var(--ok);cursor:pointer}
.gt-av{width:58px;text-align:center;padding:6px 4px;font-size:13px}
.crono-alta{margin-top:20px;padding-top:16px;border-top:1px solid var(--linea)}
.pt-vinc{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:18px;
  padding:14px 16px;background:var(--tierra-suave);border-radius:10px}
@media (max-width:760px){
  .gt-cab{display:none}
  .gt-fila{grid-template-columns:1fr;gap:6px;padding:12px;border:1px solid var(--linea);border-radius:10px}
  .gt-acc{justify-content:flex-start}
}

/* ===================== El Proyecto Vivo ===================== */
.proy-fila{display:flex;align-items:center;gap:12px;padding:15px 20px;border-bottom:1px solid var(--linea);cursor:pointer;transition:background .12s}
.proy-fila:last-child{border-bottom:none}
.proy-fila:hover{background:var(--papel)}
.proy-mid{flex:1;min-width:0}
.proy-tit{font-weight:600;font-size:15.5px}
.proy-sub{font-size:12.5px;color:var(--tinta2);margin-top:1px}
.proy-chip{font-size:13px;color:var(--tinta2);white-space:nowrap;flex:none}
.proy-est{font-size:12.5px;font-weight:600;white-space:nowrap;flex:none}
.proy-cab{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap}
.proy-estado{flex:none}
.proy-estado label{font-size:11px;letter-spacing:.6px;text-transform:uppercase;color:var(--tinta3);margin-bottom:5px}
.proy-estado select{min-width:170px}
.inv-caja{margin-top:16px;padding-top:16px;border-top:1px solid var(--linea)}
.doc-cat{font-size:11px;font-weight:600;letter-spacing:1.1px;text-transform:uppercase;color:var(--tierra-texto);
  margin:16px 0 6px;padding-bottom:5px;border-bottom:1px solid var(--linea)}
.hist-caja{border-left:4px solid var(--tierra)}
.bita{display:flex;flex-direction:column}
.bita-item{display:flex;gap:14px;align-items:baseline;padding:8px 0;border-bottom:1px dashed var(--linea);font-size:13.5px}
.bita-item:last-child{border-bottom:none}
.bita-f{color:var(--tinta3);font-size:12px;white-space:nowrap;flex:none;font-variant-numeric:tabular-nums}
.bita-t{flex:1;min-width:0}
.bita-q{color:var(--tinta2);font-size:12.5px;white-space:nowrap;flex:none}
@media (max-width:560px){
  .proy-chip{display:none}
  .bita-item{flex-wrap:wrap;gap:4px 12px}.bita-t{flex-basis:100%;order:3}
}

.pt-partes{margin-top:16px;padding:13px 16px;background:var(--papel);border:1px solid var(--linea);border-radius:10px;font-size:13.5px}
.pt-chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}
.pt-chip{font-size:12.5px;padding:5px 11px;border-radius:99px;background:var(--panel);border:1px solid var(--linea2)}
.pt-chip i{font-style:normal;color:var(--tinta2)}

/* ===================== Contratos ===================== */
.legal-aviso{background:#fff8e6;border:1px solid #e6cf92;border-left:4px solid #c8912e;border-radius:0 10px 10px 0;
  padding:13px 17px;margin-bottom:20px;font-size:13.5px;color:#5a4a20;line-height:1.55}
.con-tipos{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}
.con-tipo{text-align:left;padding:14px 16px;border:1px solid var(--linea2);border-radius:10px;background:var(--panel);
  cursor:pointer;font-family:inherit;transition:.12s;color:var(--tinta)}
.con-tipo:hover{border-color:var(--tierra)}
.con-tipo.on{border-color:var(--tierra);box-shadow:0 0 0 2px var(--tierra-suave);background:var(--tierra-suave)}
.con-tipo b{display:block;font-size:14.5px;margin-bottom:3px}
.con-tipo span{font-size:12.5px;color:var(--tinta2);line-height:1.45}
.alc-tit{font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;margin-bottom:8px}
.alc-tit.si{color:var(--ok)}.alc-tit.no{color:var(--alerta)}

.cl-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:9px}
.cl-item{display:flex;align-items:center;gap:10px;padding:11px 14px;border:1px solid var(--linea2);
  border-radius:9px;background:var(--panel);cursor:pointer;font-size:14px;transition:.12s}
.cl-item:hover{border-color:var(--tierra)}
.cl-item.fija{opacity:.65;cursor:default}
.cl-item input{width:auto;flex:0 0 auto;accent-color:var(--tierra)}
.cl-item i{font-style:normal;color:var(--tinta3);font-size:12px}
.cl-item:has(input:checked){border-color:var(--tierra);background:var(--tierra-suave)}

/* ===================== Monitoreo de ARCA ===================== */
.mon-cert{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;border-left:4px solid var(--linea2)}
.mon-cert.ok{border-left-color:var(--ok)}
.mon-cert.pronto{border-left-color:#c8912e}
.mon-cert.vencido{border-left-color:var(--alerta)}
.et-chica{font-size:11px;letter-spacing:.6px;text-transform:uppercase;color:var(--tinta3)}
.mon-cert-t{font-size:17px;font-weight:600;margin-top:3px}
.mon-amb{font-size:13px;color:var(--tinta2);white-space:nowrap}
.mon-desf{font-size:12.5px;font-weight:600;color:var(--alerta);white-space:nowrap}
.mon-ok{font-size:12.5px;color:var(--ok);white-space:nowrap}

/* ===================== Pedidos a corralones ===================== */
.pc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.pc-item{display:flex;align-items:center;gap:11px;padding:12px 14px;border:1px solid var(--linea2);
  border-radius:9px;cursor:pointer;background:var(--panel);transition:.12s}
.pc-item:hover{border-color:var(--tierra)}
.pc-item input{width:auto;flex:0 0 auto;accent-color:var(--tierra)}
.pc-item:has(input:checked){border-color:var(--tierra);box-shadow:0 0 0 2px var(--tierra-suave)}
.cor-tabla input[type=number]{width:120px;text-align:right;padding:7px 9px}
.cor-tabla input[type=checkbox]{width:auto;accent-color:var(--tierra)}
.cor-pie{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  margin-top:16px;padding-top:14px;border-top:1px solid var(--linea);font-size:15px}

/* ===================== Importar lista de materiales ===================== */
.imp-prev{border-color:var(--tierra-suave);box-shadow:0 0 0 3px var(--tierra-suave),var(--sombra)}
.imp-aviso{font-size:13px;color:var(--tinta);background:#faf4e8;border-left:3px solid #c8912e;
  border-radius:0 8px 8px 0;padding:9px 13px;margin-bottom:10px;line-height:1.5}
.imp-pie{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid var(--linea)}
.cuenta-tabla .sin-precio{color:var(--alerta);font-weight:600}

/* ===================== Rentabilidad ===================== */
.imp-caja{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.imp-pct{display:flex;align-items:center;gap:8px;flex:none}
.imp-pct label{font-size:13px;color:var(--tinta2);font-weight:600}
.imp-pct input{width:78px;text-align:center;font-weight:600}
.pill-rec{font-size:11px;font-weight:600;padding:2px 8px;border-radius:99px;background:var(--tierra-suave);color:var(--tierra-osc)}

/* ===================== Sugerencias y objeciones de la consulta ===================== */
.sug-item{border-left:3px solid var(--tierra);background:var(--tierra-suave);border-radius:0 8px 8px 0;
  padding:11px 14px;margin-bottom:10px}
.sug-item:last-child{margin-bottom:0}
.sug-serv{font-weight:600;font-size:14.5px;color:var(--tierra-osc)}
.sug-motivo{font-size:13.5px;color:var(--tinta);margin-top:3px;line-height:1.5}
.obj-caja summary{cursor:pointer;list-style:none;font-size:15px}
.obj-caja summary::-webkit-details-marker{display:none}
.obj-caja summary .sub{display:inline}
.obj-lista{display:flex;flex-direction:column;gap:14px;margin-top:16px}
.obj-q{font-family:var(--serif);font-size:16px;font-style:italic;color:var(--tierra-osc)}
.obj-r{font-size:14px;line-height:1.6;color:var(--tinta);margin-top:5px;
  padding-left:14px;border-left:2px solid var(--linea2)}

/* ===================== Código de recuperación ===================== */
.codigo-rec{font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;font-size:clamp(20px,6vw,28px);
  font-weight:700;letter-spacing:2px;text-align:center;padding:20px 12px;margin:16px 0 10px;
  background:var(--tierra-suave);color:var(--tierra-osc);border:2px dashed var(--tierra);border-radius:12px;
  user-select:all;word-break:break-all}
.codigo-tips{font-size:13px;color:var(--tinta2);text-align:center;margin-bottom:14px}
/* Copiar / imprimir / bajar. En una fila que se parte sola en el teléfono, porque los tres
   importan igual: el papel es lo único que no se pierde con un teléfono. */
.codigo-botones{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-bottom:4px}
.codigo-botones .boton{flex:1 1 auto;min-width:118px;justify-content:center}
/* La llave mostrada desde adentro de la app (al generar una nueva). */
.llave-caja{max-width:520px}
.llave-cuerpo{padding:22px 24px 24px}
.codigo-bloque{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  margin-top:18px;padding-top:16px;border-top:1px solid var(--linea)}

/* ===================== Academia ===================== */
.acad-ubic{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.acad-ubic.on{border-color:var(--tierra-suave);box-shadow:0 0 0 3px var(--tierra-suave),var(--sombra)}
.acad-ub-et{font-size:11px;letter-spacing:.6px;text-transform:uppercase;color:var(--tinta3)}
.acad-ub-lugar{font-family:var(--serif);font-size:20px;font-weight:600;margin-top:2px}
.acad-grid{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}
.acad-lec{background:var(--panel);border:1px solid var(--linea);border-radius:var(--radio);box-shadow:var(--sombra);overflow:hidden}
.acad-lec summary{display:flex;align-items:center;gap:12px;padding:16px 20px;cursor:pointer;list-style:none}
.acad-lec summary::-webkit-details-marker{display:none}
.acad-ic{font-size:22px;flex:none}
.acad-tit{font-weight:600;font-size:16px;flex:none}
.acad-res{color:var(--tinta2);font-size:13.5px;flex:1;min-width:0}
.acad-chev{color:var(--tinta3);transition:transform .18s;flex:none}
.acad-lec[open] .acad-chev{transform:rotate(180deg)}
.acad-puntos{margin:0 20px 18px 54px;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}
.acad-puntos li{position:relative;padding-left:18px;font-size:14.5px;line-height:1.55;color:var(--tinta)}
.acad-puntos li::before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:50%;background:var(--tierra)}
.acad-guia h3{margin-bottom:8px}
.guia-nota{margin-top:12px;font-size:13px;color:var(--tinta2);background:var(--papel);
  border:1px solid var(--linea);border-radius:8px;padding:10px 13px;line-height:1.5}
@media (max-width:560px){
  .acad-lec summary{flex-wrap:wrap}
  .acad-res{flex-basis:100%;order:3;margin-left:34px}
  .acad-puntos{margin-left:34px}
}

/* ---------- Visor de archivos ---------- */
/* OJO: z-index 60 para quedar por encima del menú lateral móvil (40) y su backdrop (35). */
.sin-scroll{overflow:hidden}
.visor{position:fixed;inset:0;z-index:60;background:rgba(27,26,23,.62);
  display:flex;align-items:center;justify-content:center;padding:20px;
  backdrop-filter:blur(3px);animation:vs-entra .16s ease}
@keyframes vs-entra{from{opacity:0}to{opacity:1}}
.vs-caja{background:var(--panel);border-radius:var(--radio);box-shadow:0 24px 70px rgba(0,0,0,.35);
  width:min(1080px,100%);max-height:100%;display:flex;flex-direction:column;overflow:hidden}
.vs-top{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--linea);flex-shrink:0}
.vs-nom{font-weight:600;font-size:15px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vs-meta{font-size:12px;color:var(--tinta3);flex-shrink:0}
.vs-x{background:transparent;border:0;font-size:18px;color:var(--tinta2);padding:4px 8px;border-radius:6px;line-height:1}
.vs-x:hover{background:var(--papel);color:var(--tinta)}
.vs-cuerpo{flex:1;min-height:0;overflow:auto;background:var(--papel);
  display:flex;align-items:center;justify-content:center;padding:14px}
.vs-img{max-width:100%;max-height:72vh;object-fit:contain;border-radius:6px;box-shadow:var(--sombra)}
.vs-frame{width:100%;height:72vh;border:0;background:#fff;border-radius:6px}
.vs-media{max-width:100%}
.vs-nada{text-align:center;padding:40px 20px;max-width:420px}
.vs-nada-ic{font-size:44px;margin-bottom:12px}
.vs-nada-tit{font-family:var(--serif);font-size:20px;margin-bottom:6px}
.vs-nada-txt{font-size:14px;color:var(--tinta2);line-height:1.6}
.vs-pie{display:flex;gap:10px;flex-wrap:wrap;padding:14px 16px;border-top:1px solid var(--linea);flex-shrink:0}
@media (max-width:560px){
  .visor{padding:0}
  .vs-caja{border-radius:0;height:100%;width:100%}
  .vs-frame{height:100%;min-height:60vh}
  .vs-pie .boton{flex:1}
}
/* Las dos acciones de un archivo (ver / descargar) viajan juntas y no se separan al angostar. */
.doc-acc{display:flex;gap:6px;flex-shrink:0;align-items:center}
.doc-acc .boton.chico{white-space:nowrap}
@media (max-width:560px){ .doc-acc .boton.chico{padding:7px 10px} }
/* Destella un campo para señalar "es éste" sin mover al usuario de lugar. */
.destella{animation:destella 1.2s ease}
@keyframes destella{0%,100%{box-shadow:none}
  20%,60%{box-shadow:0 0 0 3px var(--tierra-suave);border-color:var(--tierra)}}

/* ---------- Paleta de rubros del arancel ---------- */
.srv-paleta{border:1px solid var(--linea);border-radius:var(--radio);padding:16px;background:var(--papel);margin-bottom:6px}
.srv-grupo{margin-bottom:14px}
.srv-grupo:last-child{margin-bottom:0}
.srv-cat{font-size:11px;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;
  color:var(--tierra-texto);margin-bottom:7px}
.srv-chips{display:flex;flex-wrap:wrap;gap:7px}
/* Los que ya están cargados se ven apagados: sirven de recordatorio, no de botón. */
.chip-plantilla.ya{opacity:.5;border-style:dashed}
.srv-ref{font-size:13px;color:var(--tinta2);background:var(--tierra-suave);
  border-radius:8px;padding:9px 12px;margin:0 0 12px}

/* ---------- Salida de WhatsApp cuando no está la app de escritorio ---------- */
.wa-salida{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:70;
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center;
  background:var(--carbon);color:#f2ece0;padding:12px 14px;border-radius:12px;
  box-shadow:0 14px 40px rgba(0,0,0,.35);max-width:min(560px,94vw);animation:vs-entra .18s ease}
.wa-txt{font-size:14px;font-weight:600}
.wa-x{background:transparent;border:0;color:#b9b1a3;font-size:15px;padding:2px 6px;line-height:1}
.wa-x:hover{color:#f2ece0}
@media (max-width:520px){ .wa-salida{left:12px;right:12px;transform:none;max-width:none} }
/* Muestra de cómo queda un link, y la elección de por dónde abrir WhatsApp. */
.link-muestra{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14.5px;
  background:var(--papel);border:1px dashed var(--linea2);border-radius:8px;padding:11px 13px;
  overflow-x:auto;white-space:nowrap}
.lm-cod{color:var(--tierra-texto);font-weight:600}
.wa-opciones{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.wa-op{display:flex;flex-direction:column;gap:3px;align-items:flex-start;text-align:left;
  background:#fff;border:1px solid var(--linea2);border-radius:var(--radio);padding:13px 15px;
  font-size:14.5px;font-weight:600;color:var(--tinta);transition:.14s}
.wa-op:hover{border-color:var(--tierra)}
.wa-op.on{border-color:var(--tierra);box-shadow:0 0 0 3px var(--tierra-suave);background:var(--tierra-suave)}
.wa-sub{font-size:12.5px;font-weight:400;color:var(--tinta2);line-height:1.45}

/* ---------- Recomendar MaterialesYa a los corralones ---------- */
/* Discreta a propósito: es una sugerencia entre colegas, no un aviso publicitario. */
.myst{background:var(--tierra-suave);border:1px solid var(--linea2)}
.myst-top{display:flex;gap:14px;align-items:flex-start}
.myst-ic{font-size:26px;line-height:1;flex-shrink:0;margin-top:2px}
.myst .sub{margin:0}

/* ---------- Indicador de espacio ---------- */
.esp-cifra{font-size:22px;font-family:var(--serif);display:flex;align-items:baseline;gap:10px;margin-bottom:9px}
.esp-pct{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.6px;
  color:var(--tinta2);background:var(--papel);border-radius:20px;padding:3px 10px}
.esp-pct.alto{color:#fff;background:var(--alerta)}
.esp-barra{height:9px;border-radius:20px;background:var(--linea);overflow:hidden}
.esp-lleno{height:100%;border-radius:20px;background:var(--tierra);transition:width .35s ease}
.esp-lleno.alto{background:var(--alerta)}
.esp-aviso{font-size:13px;color:var(--alerta);margin-top:10px;font-weight:600}
.esp-fila{display:flex;align-items:center;gap:12px;padding:9px 0;border-top:1px solid var(--linea)}
.esp-nom{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.esp-peso{font-size:13px;color:var(--tinta2);font-variant-numeric:tabular-nums;flex-shrink:0}

/* ---------- Previas: el legajo hoja por hoja ---------- */
.pre-mini{height:4px;border-radius:20px;background:var(--linea);overflow:hidden;margin-top:6px;max-width:220px}
.pre-mini-lleno{height:100%;background:var(--tierra);border-radius:20px}
.pre-cab{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap}
.pre-grande{font-family:var(--serif);font-size:38px;line-height:1;font-variant-numeric:tabular-nums}
.pre-grande span{font-size:20px;color:var(--tinta3)}
.pre-ok{margin-top:14px;padding:11px 14px;border-radius:8px;background:#eaf3ec;color:var(--ok);font-weight:600;font-size:14px}

.pre-plantillas{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.pre-pl{text-align:left;background:#fff;border:1px solid var(--linea2);border-radius:var(--radio);
  padding:14px 16px;display:flex;flex-direction:column;gap:5px;transition:.14s;color:var(--tinta)}
.pre-pl:hover{border-color:var(--tierra)}
.pre-pl.on{border-color:var(--tierra);box-shadow:0 0 0 3px var(--tierra-suave);background:var(--tierra-suave)}
.pre-pl-top{display:flex;align-items:center;gap:9px;flex-wrap:wrap;font-size:14.5px}
.pre-ver{font-size:10.5px;font-weight:600;letter-spacing:.6px;text-transform:uppercase;
  background:#eaf3ec;color:var(--ok);border-radius:20px;padding:3px 9px}
.pre-gen{font-size:10.5px;font-weight:600;letter-spacing:.6px;text-transform:uppercase;
  background:var(--papel);color:var(--tinta2);border-radius:20px;padding:3px 9px}
.pre-pl-org{font-size:12.5px;color:var(--tinta2)}
.pre-pl-nota{font-size:12px;color:var(--tinta3);line-height:1.5}

.pre-fila{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-top:1px solid var(--linea)}
.pre-fila:first-of-type{border-top:0}
.pre-fila.listo .pre-tit{color:var(--tinta2)}
.pre-fila.nada{opacity:.5}
.pre-fila.nada .pre-tit{text-decoration:line-through}
.pre-num{font-size:12px;color:var(--tinta3);font-variant-numeric:tabular-nums;width:20px;
  text-align:right;flex-shrink:0;padding-top:5px}
.pre-marca{background:transparent;border:0;font-size:19px;line-height:1;padding:2px;flex-shrink:0}
.pre-mid{flex:1;min-width:0}
.pre-tit{font-weight:600;font-size:14.5px;line-height:1.4}
.pre-opt{font-size:11px;font-weight:400;color:var(--tinta3)}
.pre-det{font-size:12.5px;color:var(--tinta2);line-height:1.5;margin-top:2px}
.pre-quien{font-size:12px;color:var(--tinta3);margin-top:3px}
.pre-acc{display:flex;gap:5px;align-items:center;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}
.i-mov{background:transparent;border:1px solid var(--linea2);border-radius:6px;color:var(--tinta2);
  width:27px;height:27px;line-height:1;font-size:13px;padding:0}
.i-mov:hover:not(:disabled){border-color:var(--tierra);color:var(--tierra-texto)}
.i-mov:disabled{opacity:.3;cursor:default}
.pre-agregar{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-top:16px;
  padding-top:16px;border-top:1px dashed var(--linea2)}
.pre-agregar input{flex:1;min-width:200px}
.pre-agregar select{width:auto;min-width:170px}
@media (max-width:640px){
  .pre-fila{flex-wrap:wrap}
  .pre-acc{width:100%;justify-content:flex-start;padding-left:32px}
  .pre-agregar input,.pre-agregar select{width:100%;min-width:0}
}

/* ---------- MaterialesYa como módulo aparte ---------- */
/* El separador en el menú: deja claro que esto es otra cosa, no una tarea del estudio. */
.grupo-nav.aparte{margin-top:22px;padding-top:16px;border-top:1px solid rgba(242,236,224,.14)}
.mya-hero{background:var(--tierra-suave);border:1px solid var(--linea2)}
.mya-frase{font-family:var(--serif);font-size:26px;line-height:1.25;margin-bottom:10px}
.mya-baja{font-size:15px;color:var(--tinta2);line-height:1.65;max-width:62ch}
.mya-grilla{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}
.mya-item{display:flex;gap:12px;align-items:flex-start}
.mya-ic{font-size:21px;line-height:1.2;flex-shrink:0}
.mya-item b{font-size:14.5px}
.mya-det{font-size:13px;color:var(--tinta2);line-height:1.55;margin-top:2px}
@media (max-width:560px){ .mya-frase{font-size:21px} }
/* El archivo elegido para la hoja nueva, antes de agregarla. */
.pre-elegido{font-size:13px;color:var(--tinta2);background:var(--tierra-suave);
  border-radius:8px;padding:9px 12px;margin-top:10px}
/* Soltar el lugar: los dos pasos juntos, porque bajar primero no es opcional. */
.lib-caja{background:var(--tierra-suave);border:1px solid var(--linea2)}

/* ---------- Control de retiros ---------- */
.ret-fila{padding:14px 0;border-top:1px solid var(--linea)}
.ret-fila:first-of-type{border-top:0}
.ret-fila.completo{opacity:.72}
.ret-top{display:flex;align-items:baseline;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:7px}
.ret-nom{font-weight:600;font-size:14.5px;flex:1;min-width:160px}
.ret-cifras{display:flex;gap:14px;font-size:12.5px;color:var(--tinta2);
  font-variant-numeric:tabular-nums;flex-wrap:wrap}
.ret-falta{color:var(--tierra-texto);font-weight:600}
.ret-listo{color:var(--ok);font-weight:600}
.ret-demas{color:var(--alerta);font-weight:600}
.ret-barra{height:6px}
.ret-acc{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.ret-cant{width:110px;flex:0 0 auto}
.ret-quien{width:190px;flex:0 0 auto}
.ret-viajes{margin-top:9px;font-size:12.5px}
.ret-viajes summary{cursor:pointer;color:var(--tinta2);user-select:none}
.ret-viaje{color:var(--tinta2);padding:4px 0 0 16px}
@media (max-width:560px){ .ret-cant,.ret-quien{width:100%} }

/* ---------- Etapas de cobro del presupuesto ---------- */
.et-vacia{background:var(--tierra-suave);border:1px solid var(--linea2)}
.et-edit{display:grid;grid-template-columns:1fr 92px 1.6fr 34px;gap:8px;align-items:center;margin-bottom:8px}
.et-suma{font-size:13px;font-weight:600;align-self:center;margin-left:4px}
.et-suma.ok{color:var(--ok)} .et-suma.mal{color:var(--alerta)}
.et-fila{display:flex;align-items:flex-start;gap:12px;padding:13px 0;border-top:1px solid var(--linea)}
.et-fila:first-of-type{border-top:0}
.et-fila.hecha .et-nom{color:var(--tinta2)}
.et-marca{font-size:17px;line-height:1.4;flex-shrink:0}
.et-mid{flex:1;min-width:0}
.et-nom{font-weight:600;font-size:14.5px}
.et-pct{font-size:12px;font-weight:600;color:var(--tierra-texto);background:var(--tierra-suave);
  border-radius:20px;padding:2px 8px;margin-left:5px}
.et-entrega{font-size:12.5px;color:var(--tinta2);line-height:1.5;margin-top:2px}
.et-cert{font-size:12px;color:var(--ok);margin-top:3px;font-weight:600}
.et-monto{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0}
.et-acc{display:flex;gap:6px;flex-shrink:0;align-items:center}
@media (max-width:640px){
  .et-edit{grid-template-columns:1fr 78px 34px}
  .et-edit .ee-entrega{grid-column:1 / -1}
  .et-fila{flex-wrap:wrap}
  .et-acc{width:100%;justify-content:flex-start;padding-left:29px}
}
/* El cartel que aparece justo al certificar una etapa: avisarle al cliente en el acto. */
.et-listo{background:#eaf3ec;border:1px solid #c9e0d0}

/* ---------- Asistente de subida: la tira de pasos ---------- */
.imp-pasos{display:flex;align-items:center;gap:0;margin-bottom:18px;flex-wrap:nowrap;overflow-x:auto}
.ip-paso{display:flex;align-items:center;gap:7px;flex-shrink:0}
.ip-paso[data-a]{cursor:pointer}
.ip-paso[data-a]:hover .ip-t{color:var(--tierra-texto)}
.ip-n{width:25px;height:25px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:11.5px;font-weight:700;background:var(--linea);color:var(--tinta2);flex-shrink:0}
.ip-paso.hecho .ip-n{background:var(--tierra);color:var(--sobre-tierra)}
.ip-paso.ahora .ip-n{background:var(--tierra);color:var(--sobre-tierra);box-shadow:0 0 0 3px var(--tierra-suave)}
.ip-t{font-size:12.5px;font-weight:600;color:var(--tinta3);white-space:nowrap}
.ip-paso.ahora .ip-t{color:var(--tinta)}
.ip-paso.hecho .ip-t{color:var(--tinta2)}
.ip-linea{flex:1;min-width:14px;height:1px;background:var(--linea);margin:0 10px}
.imp-mapa{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.imp-cab td{background:var(--tierra-suave);font-weight:600}
.imp-destinos{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.imp-dest{display:flex;gap:12px;align-items:flex-start;text-align:left;background:#fff;
  border:1px solid var(--linea2);border-radius:var(--radio);padding:15px;color:var(--tinta);transition:.14s}
.imp-dest:hover{border-color:var(--tierra)}
.imp-dest.on{border-color:var(--tierra);box-shadow:0 0 0 3px var(--tierra-suave);background:var(--tierra-suave)}
.id-ic{font-size:22px;line-height:1.1;flex-shrink:0}
.id-txt{font-size:12.5px;color:var(--tinta2);line-height:1.5;margin-top:3px;font-weight:400}

/* ---------- El pedido de materiales ---------- */
.solapas{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:16px;border-bottom:1px solid var(--linea);padding-bottom:2px}
.solapa{background:transparent;border:0;border-bottom:2px solid transparent;color:var(--tinta2);
  font-size:14px;font-weight:600;padding:9px 13px;white-space:nowrap}
.solapa:hover{color:var(--tinta)}
.solapa.on{color:var(--tierra-texto);border-bottom-color:var(--tierra)}
.ped-formatos{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:11px}
.ped-fmt{display:flex;gap:12px;align-items:flex-start;text-align:left;background:#fff;
  border:1px solid var(--linea2);border-radius:var(--radio);padding:15px;color:var(--tinta);transition:.14s}
.ped-fmt:hover{border-color:var(--tierra);box-shadow:var(--sombra)}
.pf-ic{font-size:22px;line-height:1.1;flex-shrink:0}
.pf-txt{font-size:12.5px;color:var(--tinta2);line-height:1.5;margin-top:3px;font-weight:400}
.pc-ojo{font-size:11px;font-weight:400;color:var(--tierra-texto);text-transform:none;letter-spacing:0}
.check{display:flex;align-items:center;gap:9px;font-size:14px;font-weight:400;color:var(--tinta);
  text-transform:none;letter-spacing:0;margin:0 0 11px;cursor:pointer}
.check input{width:auto;margin:0}
/* Cargar lo que cotizó el corralón */
.pr-fila{display:grid;grid-template-columns:1.7fr 110px 130px 110px auto 110px;gap:9px;align-items:center;
  padding:9px 0;border-top:1px solid var(--linea)}
.pr-fila:first-of-type{border-top:0}
.pr-fila.nostock{opacity:.55}
.pr-nom{font-weight:600;font-size:14px;min-width:0}
.pr-cant{display:block;font-size:12px;color:var(--tinta3);font-weight:400}
.pr-ns{display:flex;align-items:center;gap:5px;font-size:11.5px;color:var(--tinta2);white-space:nowrap}
.pr-ns input{width:auto;margin:0}
.pr-sub{text-align:right;font-weight:600;font-variant-numeric:tabular-nums;font-size:13.5px}
@media (max-width:820px){ .pr-fila{grid-template-columns:1fr 1fr} .pr-nom{grid-column:1/-1} .pr-sub{grid-column:1/-1;text-align:left} }
/* Comparación por ítem */
.comp-ahorro{display:flex;gap:18px;align-items:center;background:#eaf3ec;border:1px solid #c9e0d0;flex-wrap:wrap}
.ca-grande{font-family:var(--serif);font-size:34px;color:var(--ok);line-height:1;font-variant-numeric:tabular-nums}
.comp-tabla td.comp-gana{background:#eaf3ec;color:var(--ok);font-weight:700}
.comp-tabla .det{font-size:11px;color:var(--tinta3);font-weight:400}
.comp-tabla tfoot td{border-top:2px solid var(--linea2);background:var(--papel)}
/* Las condiciones que ve el corralón: lo que evita la llamada telefónica. */
.cor-cond{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:9px 20px;
  background:var(--papel);border:1px solid var(--linea);border-radius:8px;padding:14px;margin-top:14px;font-size:13px}
.cc-e{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.8px;color:var(--tinta3)}
.cor-extra{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-top:14px}
.cor-tabla .det{font-size:11px;color:var(--tinta3);font-weight:400;margin-top:2px}
.cor-tabla input:not([type=checkbox]){min-width:82px}

/* ---------- Historial de precios ---------- */
.prec-fila{display:flex;align-items:center;gap:14px;padding:13px 18px;border-bottom:1px solid var(--linea);flex-wrap:wrap}
.prec-fila:last-child{border-bottom:0}
.pf-mid{flex:1;min-width:0}
.pf-nom{font-weight:600;font-size:14.5px}
.pf-det{font-size:12.5px;color:var(--tinta2);margin-top:2px}
.pf-precio{text-align:right;flex-shrink:0}
.pf-hoy{font-weight:600;font-variant-numeric:tabular-nums;font-size:15px}
.pf-var{font-size:12px;font-weight:600;margin-top:2px;color:var(--tinta3)}
.pf-var.sube{color:var(--alerta)} .pf-var.baja{color:var(--ok)}
.pf-hist{width:100%;font-size:12.5px;margin-top:4px}
.pf-hist summary{cursor:pointer;color:var(--tinta3);user-select:none;font-size:12px}
.pf-punto{color:var(--tinta2);padding:3px 0 0 16px;font-variant-numeric:tabular-nums}

/* ---------- «Tus precios se movieron» ---------- */
.mov-caja{background:#eef4f0;border:1px solid #cfe0d6}
.mov-caja.sube{background:#fdf3ef;border-color:#f0d6c8}
.mov-fila{display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:8px 0;border-top:1px solid rgba(0,0,0,.06);flex-wrap:wrap}
.mov-fila:first-of-type{border-top:0}
.mov-nom{font-weight:600;font-size:14px;flex:1;min-width:150px}
.mov-num{font-size:13.5px;color:var(--tinta2);font-variant-numeric:tabular-nums;white-space:nowrap}
.mov-pct{font-size:12px;font-weight:700;margin-left:7px}
.mov-pct.sube{color:var(--alerta)} .mov-pct.baja{color:var(--ok)}
/* Cuando dividir NO conviene, el número no se disfraza. */
.comp-ahorro.no-conviene{background:#fdf3ef;border-color:#f0d6c8}
.comp-ahorro.no-conviene .ca-grande{color:var(--alerta)}

/* ---------- Cronograma: dónde estás hoy y qué va tarde ---------- */
/* La línea de hoy: ver el plan sin saber si vas bien no sirve de nada. */
/* Superpuesta, NUNCA como celda de la grilla: si ocupa un lugar, empuja una columna a una
   segunda fila y toda la tarea se ve partida en dos. */
.gt-hoy{position:absolute;top:0;bottom:0;width:0;border-left:2px dashed var(--tierra);
  opacity:.6;pointer-events:none;z-index:2}
.gt-fila.tarde{background:#fdf6f4}
.gt-barra.tarde{background:#e9c9c0}
.gt-barra.tarde i{background:var(--alerta)}
.gt-tarde{font-size:10.5px;font-weight:600;color:var(--alerta);background:#f8e6e1;
  border-radius:20px;padding:2px 8px;white-space:nowrap}
.gt-parcial{font-size:12px;color:var(--tierra-texto);margin-top:3px;font-weight:500}
.imp-aviso.alerta{border-color:#f0d6c8;background:#fdf3ef;color:var(--alerta)}
.crono-atajo{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px;
  padding-top:14px;border-top:1px dashed var(--linea2);font-size:13.5px;color:var(--tinta2)}
.crono-o{font-size:12.5px;color:var(--tinta3)}
/* El interruptor de publicar el cronograma: por defecto privado, el estudio decide. */
.crono-publicar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  background:var(--papel);border:1px solid var(--linea);border-radius:8px;
  padding:11px 14px;margin-bottom:14px}
.crono-pub-nota{font-size:12.5px;color:var(--tinta2)}
.gt-dep{width:100%;max-width:100%;font-size:11.5px;padding:4px 7px;margin-top:5px;
  color:var(--tinta2);background:var(--papel);border-color:var(--linea)}

/* Subtítulo de cada espacio de Preferencias — el mismo lenguaje que el menú. */
.pref-grupo{font-size:11px;font-weight:600;letter-spacing:1.6px;text-transform:uppercase;
  color:var(--tinta3);margin:30px 2px 12px;padding-top:16px;border-top:1px solid var(--linea)}
.pref-grupo:first-of-type{margin-top:16px;padding-top:0;border-top:0}

/* Índice de Preferencias: la pantalla es larga, esto te baja al grupo que buscás. */
.pref-indice{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 4px}
.pref-chip{background:#fff;border:1px solid var(--linea2);border-radius:20px;
  padding:7px 15px;font-size:13px;font-weight:600;color:var(--tinta2);transition:.14s}
.pref-chip:hover{border-color:var(--tierra);color:var(--tierra-texto);background:var(--tierra-suave)}
/* Saltar al libro desde el listado de obras, sin entrar a la obra. */
.i-libro{background:transparent;border:1px solid var(--linea2);border-radius:7px;
  font-size:14px;line-height:1;width:32px;height:32px;padding:0;flex-shrink:0;color:var(--tinta2)}
.i-libro:hover{border-color:var(--tierra);background:var(--tierra-suave)}

/* ---------- Hay una versión nueva ---------- */
/* Ofrece, nunca recarga sola: puede estar en el medio de un presupuesto. */
.nueva-version{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:70;
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center;
  background:var(--carbon);color:#f2ece0;padding:11px 14px;border-radius:12px;
  box-shadow:0 14px 40px rgba(0,0,0,.35);max-width:min(460px,94vw);font-size:14px;
  animation:vs-entra .2s ease}
.nv-x{background:transparent;border:0;color:#b9b1a3;font-size:15px;padding:2px 6px;line-height:1}
.nv-x:hover{color:#f2ece0}
@media (max-width:520px){ .nueva-version{left:12px;right:12px;transform:none;max-width:none} }

/* ---------- Cronograma como tarea propia ---------- */
.crono-proys{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.crono-proy{background:#fff;border:1px solid var(--linea2);border-radius:20px;
  padding:7px 15px;font-size:13px;font-weight:600;color:var(--tinta2);transition:.14s;
  max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crono-proy:hover{border-color:var(--tierra);color:var(--tierra-texto)}
.crono-proy.on{border-color:var(--tierra);background:var(--tierra);color:var(--sobre-tierra)}

/* ---------- Qué hay de nuevo ---------- */
.nov{display:flex;gap:16px;align-items:flex-start}
.nov-ic{font-size:26px;line-height:1.1;flex-shrink:0}
.nov-mid{flex:1;min-width:0}
.nov-tit{font-family:var(--serif);font-size:18px;line-height:1.3;margin-bottom:5px}
.nov-txt{font-size:14.5px;color:var(--tinta2);line-height:1.65;max-width:66ch}
.nov-fecha{font-size:11.5px;color:var(--tinta3);margin-top:7px;font-variant-numeric:tabular-nums}
/* El aviso de versión ahora dice QUÉ trae, no sólo que hay algo. */
.nv-txt{text-align:left;line-height:1.4}
.nv-que{font-size:12.5px;color:#cbc3b5;margin-top:2px}
/* En pantalla angosta la fila del Gantt se apila: tres columnas no entran y se pisan. */
@media (max-width:900px){
  .gt-fila{grid-template-columns:1fr;gap:8px}
  .gt-acc{justify-content:flex-start;flex-wrap:wrap}
  .gt-barra-wrap{order:3}
}

/* ---------- Cronograma: fechas, predicción y plantillas ---------- */
.gt-fechas{font-size:11px;color:var(--tinta3);margin-top:2px;font-variant-numeric:tabular-nums}
.crono-arranque{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px;
  background:var(--papel);border:1px solid var(--linea);border-radius:8px;padding:11px 14px}
.crono-arranque label{margin:0;white-space:nowrap}
.crono-arranque input{width:auto;min-width:160px}

.pred{background:#eef4f0;border:1px solid #cfe0d6}
.pred.mal{background:#fdf6f2;border-color:#f0dccf}
.pred-cab{margin-bottom:14px}
.pred-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:14px 20px}
.pred-grid .et{font-size:10.5px;letter-spacing:1.2px;text-transform:uppercase;color:var(--tinta3)}
.pred-grid .v{font-size:19px;font-weight:600;font-variant-numeric:tabular-nums;margin-top:2px}
.pred-grid .v.ok{color:var(--ok)} .pred-grid .v.mal{color:var(--alerta)}
.pred-grid .v-grande{font-family:var(--serif);font-size:23px;margin-top:2px;color:var(--tierra-texto)}
.pred-txt{font-size:14px;color:var(--tinta2);line-height:1.6;margin-top:14px;
  padding-top:13px;border-top:1px solid rgba(0,0,0,.07)}
.pred-plan{font-size:14px;color:var(--tinta2);margin-top:8px}
.pred-cobros{margin-top:16px;padding-top:14px;border-top:1px solid rgba(0,0,0,.07)}
.pc-fila{display:flex;justify-content:space-between;gap:14px;font-size:14px;
  padding:6px 0;font-variant-numeric:tabular-nums}
.pc-fila.total{border-top:1px solid rgba(0,0,0,.1);margin-top:5px;padding-top:9px;font-size:15px}

.crono-plantillas{margin-top:18px;padding-top:16px;border-top:1px dashed var(--linea2)}
.crono-pls{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.crono-pl{display:flex;flex-direction:column;gap:2px;align-items:flex-start;text-align:left;
  background:#fff;border:1px solid var(--linea2);border-radius:var(--radio);padding:13px 15px;
  font-size:14px;color:var(--tinta);transition:.14s}
.crono-pl:hover{border-color:var(--tierra);box-shadow:var(--sombra)}
.crono-pl span{font-size:12px;color:var(--tinta2);font-weight:400}
.cp-nota{font-size:11.5px;color:var(--tinta3);line-height:1.45;margin-top:3px}

/* ===================== Presupuesto aceptado ===================== */
/* Verde, no tierra: es la única señal de la app que dice «esto ya está cerrado», y merece
   distinguirse de un aviso cualquiera. El monto congelado es el dato que importa. */
.aceptado-card{border-left:5px solid var(--ok, #3f7d52);background:var(--ok-suave, #f4faf5)}
.aceptado-card .ac-card-t{font-weight:700;color:var(--ok-osc, #2f6340);font-size:16px;margin-bottom:4px}
.aceptado-card .ac-card-d{font-size:13.5px;color:var(--tinta2);margin-bottom:12px;line-height:1.55}

/* ===================== El teléfono ===================== */
/* iOS hace ZOOM automático en cualquier campo cuya letra mida menos de 16px. El profesional toca
   «monto», el teléfono se acerca, la pantalla se descoloca, y tiene que pellizcar para volver. Una
   vez es molesto; cargando veinte ítems de un presupuesto en la obra es insoportable — y es el
   momento en que más se usa la app.
   16px exactos es el mínimo que iOS no toca. No es una preferencia de diseño: es el umbral. */
@media (max-width: 860px) {
  input, select, textarea { font-size: 16px }
  /* El área de toque: 44px es lo que recomienda Apple y lo que necesita un pulgar con guante de obra. */
  .boton, .boton.chico { min-height: 44px }
  .i-del, .vs-x { min-width: 40px; min-height: 40px }
  /* Las tablas de detalle se van de ancho en el teléfono: scrollean ellas, no la página entera. */
  .pitem, .gt-fila { font-size: 13.5px }
}
/* Las casillas de tildar, más grandes en el teléfono: son lo que más se toca en obra (los requisitos
   del legajo, las tareas del cronograma) y con 13px se le erra. */
@media (max-width: 860px) {
  .check-fila input[type="checkbox"], .check-legal input[type="checkbox"],
  .req-edit input[type="checkbox"] { width: 22px; height: 22px }
}
/* Menos movimiento para quien lo pidió en su sistema. No es un detalle: hay gente a la que las
   transiciones le dan mareo, y una app de trabajo no puede hacer eso. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important;
    transition-duration: .01ms !important; scroll-behavior: auto !important }
}
