:root{
  --marca:#A41C12; --oscuro:#5E120C; --tinta:#1A1D1C;
  --linea:#E2E6E4; --suave:#FBE9E6; --mute:#EDEFEE; --pagina:#F2F4F3;
  --gris:#8A928E;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;
     background:var(--pagina);color:var(--tinta);font-size:15px;line-height:1.5}
.mono{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}
.t11{font-size:11.5px} .t10{font-size:10.5px}

/* ---------- Estructura ---------- */
.app{display:flex;min-height:100%}
aside{width:224px;flex-shrink:0;background:var(--oscuro);color:#fff;padding:14px;
      display:flex;flex-direction:column;overflow-y:auto}
main{flex:1;padding:16px;max-width:1200px}
@media(max-width:900px){
  .app{flex-direction:column}
  aside{width:auto;padding:10px 14px;position:relative}
  aside .nav{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}
  aside .nav button{white-space:nowrap}

  /* El logo a la izquierda, no centrado ocupando todo el ancho */
  aside .logo{display:inline-block;align-self:flex-start;padding:5px 9px;margin-bottom:4px}
  aside .logo img{max-height:26px}
  aside .sub{display:none}

  /* Salir a la altura del logo: sin él arriba, quedaba al final de
     todo y había que bajar para encontrarlo */
  aside .pie{margin-top:7px;padding-top:7px;display:flex;align-items:center;
             justify-content:space-between;gap:10px}
  aside .pie .quien{display:flex;gap:8px;align-items:baseline;min-width:0;
                    overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
  aside .pie .salir{position:absolute;top:11px;right:14px;
                    width:auto;flex:0 0 auto;padding:6px 13px;margin:0}
  main{padding:12px}
}

aside .logo{background:#fff;border-radius:9px;padding:6px 8px;margin-bottom:5px;text-align:center}
aside .logo img{max-height:32px;max-width:100%;display:block;margin:0 auto}
aside .sub{color:rgba(255,255,255,.5);font-size:11.5px;margin-bottom:14px}
.nav button{width:100%;text-align:left;padding:9px 11px;border-radius:9px;border:0;
  background:transparent;color:rgba(255,255,255,.72);font-size:14px;font-weight:600;
  cursor:pointer;display:flex;align-items:center;gap:8px;margin-bottom:2px;font-family:inherit}
.nav button:hover{background:rgba(255,255,255,.1)}
.nav button.on{background:#fff;color:var(--marca)}
.nav{flex:1 1 auto;min-height:0;overflow-y:auto}
.nav-grupo{font-size:10px;text-transform:uppercase;letter-spacing:.6px;opacity:.6;margin:10px 11px 2px;font-weight:700}
@media(max-width:900px){ .nav-grupo{display:none} }
.pie{margin-top:auto;padding-top:10px;border-top:1px solid rgba(255,255,255,.12);
     font-size:11.5px;color:rgba(255,255,255,.45);flex-shrink:0}
.pie .salir{width:100%;margin-top:8px}
.pie .quien{margin-bottom:2px}

/* ---------- Componentes ---------- */
.card{background:#fff;border:1px solid var(--linea);border-radius:12px;padding:14px;margin-bottom:12px}
.card h2{margin:0 0 10px;font-size:15px}
.rejilla{display:grid;gap:12px}
/* Sin esto, una celda no se achica por debajo de su palabra más larga
   y la rejilla entera se sale de la pantalla */
.rejilla>*{min-width:0}
@media(min-width:900px){ .rejilla.dos{grid-template-columns:1fr 1fr} }
/* Cuatro o cinco cifras en fila no caben en un teléfono: van de a dos */
.rejilla.cifras{grid-template-columns:repeat(4,minmax(0,1fr))}
.rejilla.cifras.cinco{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:600px){ .rejilla.cifras,.rejilla.cifras.cinco{grid-template-columns:repeat(2,minmax(0,1fr))} }
/* Tres montos sí caben en un teléfono, con la letra un poco más chica */
.rejilla.tres{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:600px){ .rejilla.tres{gap:8px}
  .rejilla.tres>div>.mono:first-child:not(.t10):not(.t11){font-size:16px !important} }
@media(max-width:380px){ .rejilla.tres>div>.mono:first-child:not(.t10):not(.t11){font-size:14px !important} }

label{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;
      color:var(--gris);font-weight:700;margin-bottom:3px}
input,select,textarea{width:100%;padding:9px 10px;border:1px solid var(--linea);
  border-radius:8px;font-size:14px;font-family:inherit;background:#fff;margin-bottom:9px}
input:focus,select:focus,textarea:focus{outline:2px solid var(--marca);outline-offset:-1px}
textarea{resize:vertical}
/* Lo que no cabe baja a la línea siguiente en vez de salirse del
   margen; los botones chicos no se parten palabra por palabra */
.fila{display:flex;gap:8px;flex-wrap:wrap}
.fila>*{flex:1}
/* En el teléfono, tres campos en una fila quedaban de 100px, con el
   texto cortado: pasan de a dos y el tercero abajo */
@media(max-width:600px){ .fila>div:not([style*="flex:0 0 auto"]){flex-basis:140px !important} }

button.b,a.b,label.b{background:var(--marca);color:#fff;border:0;border-radius:9px;padding:11px 14px;
  font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;width:100%}
button.b.sec,a.b.sec,label.b.sec{background:#fff;color:var(--tinta);border:1px solid var(--tinta)}
button.b.chico,a.b.chico{padding:7px 11px;font-size:12px;width:auto;white-space:nowrap}
a.b{display:inline-block;text-decoration:none;text-align:center}
/* Un <label> con aspecto de botón (para elegir un archivo) no lleva
   el estilo de etiqueta de formulario */
label.b{display:block;text-transform:none;letter-spacing:0;font-size:14px;margin:0}
/* Botones al lado de un monto: en fila en la PC; en el teléfono uno
   sobre otro, para no dejar el nombre del cliente en una columna */
.apilados{display:flex;gap:4px;justify-content:flex-end;margin-top:4px}
@media(max-width:600px){ .apilados{flex-direction:column;align-items:flex-end} }
button.b:disabled{opacity:.45;cursor:default}

.grupo{margin-bottom:10px}
.grupo>div:first-child{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;
  color:var(--gris);font-weight:700;margin-bottom:5px}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{font-size:11.5px;font-weight:600;padding:6px 10px;border-radius:8px;
  border:1px solid var(--linea);background:#fff;cursor:pointer;font-family:inherit}
.chip.on{background:var(--marca);border-color:var(--marca);color:#fff}
.chip.oscuro.on{background:var(--tinta);border-color:var(--tinta)}

table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;padding:7px 8px;background:var(--mute);font-size:10.5px;
   text-transform:uppercase;color:var(--gris);font-weight:700}
td{padding:8px;border-bottom:1px solid var(--linea)}
tr:last-child td{border-bottom:0}
.der{text-align:right}

/* ---------- Vendedor ---------- */
@media(min-width:901px){ .solo-movil{display:none !important} }
@media(max-width:900px){
  .solo-pc{display:none !important}
  /* Con un solo módulo (el vendedor), el menú de módulos sobra */
  .app.un-modulo aside .nav{display:none}
}
.aviso-visita{position:sticky;top:0;z-index:30;background:#FEF2F2;border:1px solid #FECACA;
  border-left:4px solid #B91C1C;border-radius:10px;padding:8px 12px;margin:0 0 10px;font-size:12.5px;
  line-height:1.4;color:#991B1B;box-shadow:0 2px 8px rgba(0,0,0,.06)}
.aviso-visita.ok{background:#F0FDF4;border-color:#BBF7D0;border-left-color:#15803D;color:#166534}
.aviso-visita .l1{display:flex;justify-content:space-between;gap:10px;align-items:center}
.aviso-visita .cont{font-weight:700;white-space:nowrap;color:var(--tinta);font-size:14px}
.aviso-visita .barra{height:4px;background:#FECACA;border-radius:99px;margin-top:6px;overflow:hidden}
.aviso-visita .barra div{height:100%;background:#B91C1C}
@media(max-width:900px){
  .aviso-visita{margin:-12px -12px 10px;border-radius:0;border-width:0 0 1px}
}
.nav-abajo{position:fixed;left:0;right:0;bottom:0;z-index:40;background:#fff;border-top:1px solid var(--linea);
  display:grid;grid-auto-flow:column;grid-auto-columns:1fr;padding:4px 4px calc(8px + env(safe-area-inset-bottom));
  box-shadow:0 -4px 14px rgba(0,0,0,.06)}
.nav-abajo button{background:none;border:0;display:flex;flex-direction:column;align-items:center;gap:1px;
  font:600 11px system-ui,sans-serif;color:var(--gris);position:relative;padding:6px 0;cursor:pointer}
.nav-abajo .ico{font-size:21px;line-height:1.1}
.nav-abajo button.on{color:var(--marca)}
.nav-abajo button.on::before{content:"";position:absolute;top:-5px;left:28%;right:28%;height:3px;
  border-radius:0 0 3px 3px;background:var(--marca)}
.globo{position:absolute;top:2px;right:24%;background:#B91C1C;color:#fff;border-radius:99px;font-size:10px;
  padding:0 5px;font-weight:700;line-height:16px}
.espacio-nav{height:0}
@media(max-width:900px){ .espacio-nav{height:76px} }
.busca{position:relative}
.busca input{margin:0;padding-left:34px;border-radius:10px;font-size:15px}
.busca::before{content:"🔍";position:absolute;left:11px;top:50%;transform:translateY(-50%);font-size:14px;pointer-events:none}
.filtros{display:flex;gap:6px;margin:8px 0 6px;overflow-x:auto;padding-bottom:2px}
.filtros .chip{white-space:nowrap;flex:0 0 auto}
.seccion-t{font-size:10.5px;font-weight:700;text-transform:uppercase;color:var(--gris);letter-spacing:.04em;margin:12px 2px 6px}
.cli{background:#fff;border:1px solid var(--linea);border-radius:12px;padding:10px 12px;margin-bottom:8px}
.cli.hecho{background:#FAFBFA}
/* En la PC hay espacio: los locales van en columnas */
@media(min-width:901px){
  #v_lista,#bcv_lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:10px;align-items:start}
  #v_lista .seccion-t,#bcv_lista>.card{grid-column:1/-1}
  #v_lista .cli,#bcv_lista .cli{margin:0}
}
.cli .top{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}
.cli .nom{font-weight:700;font-size:14.5px;line-height:1.25}
.cli .sub{font-size:11.5px;color:var(--gris);line-height:1.35}
.cli .marcas{display:flex;flex-wrap:wrap;gap:5px;align-items:center;margin-top:5px}
.cli .acc{display:flex;gap:8px;margin-top:9px;align-items:stretch}
.cli .acc .b{flex:1;padding:10px 8px;font-size:14px}
.cli .acc .mas{flex:0 0 46px;border:1px solid var(--linea);border-radius:9px;background:#fff;font-size:20px;
  cursor:pointer;line-height:1}
.est{font-size:11px;font-weight:700;padding:2px 8px;border-radius:99px;display:inline-block}
.est.ok{background:#DCFCE7;color:#15803D}
.est.pend{background:#FEF3C7;color:#92400E}
.est.venc{background:#FEE2E2;color:#B91C1C}
.est.neutro{background:var(--mute);color:var(--tinta)}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.tile{position:relative;background:#fff;border:1px solid var(--linea);border-radius:14px;padding:14px 12px;
  text-align:left;font-family:inherit;color:var(--tinta);cursor:pointer}
.tile .i{font-size:26px;display:block}
.tile b{display:block;margin-top:6px;font-size:14.5px}
.tile small{color:var(--gris);font-size:11.5px;line-height:1.3;display:block;margin-top:2px}
.tile .globo{top:10px;right:10px}
.capa-hoja{position:fixed;inset:0;background:rgba(20,22,21,.45);z-index:80;display:flex;align-items:flex-end;justify-content:center}
.hoja{background:#fff;border-radius:18px 18px 0 0;padding:10px 14px calc(18px + env(safe-area-inset-bottom));
  width:100%;max-width:520px;max-height:85vh;overflow-y:auto}
.hoja .asa{width:40px;height:4px;background:var(--linea);border-radius:99px;margin:0 auto 10px}
.hoja .op{display:flex;gap:12px;align-items:center;width:100%;padding:11px 4px;border:0;border-top:1px solid var(--linea);
  background:none;text-align:left;font-family:inherit;color:var(--tinta);cursor:pointer}
.hoja .op .i{width:36px;height:36px;flex:0 0 36px;border-radius:9px;background:var(--mute);display:flex;
  align-items:center;justify-content:center;font-size:17px}
.hoja .op .tt{font-size:15px}
.hoja .op small{display:block;color:var(--gris);font-size:11.5px}
.cant{display:flex;align-items:center;justify-content:flex-end;gap:5px;margin-top:4px}
.cant button{width:32px;height:32px;border-radius:8px;border:1px solid var(--linea);background:#fff;font-size:16px;
  cursor:pointer;font-family:inherit;padding:0}
.cant .cant-num{width:64px;margin:0;padding:5px 4px;text-align:center;font-size:14px;font-weight:700}
.marca-precio{display:inline-block;font-size:10.5px;font-weight:700;padding:1px 7px;border-radius:99px;
  background:var(--mute);color:var(--tinta);margin-top:3px}
.marca-precio.neg{background:#FEF3C7;color:#92400E}
.barra-pedido{position:sticky;bottom:0;z-index:30;background:#fff;border:1px solid var(--linea);border-radius:12px;
  padding:10px 12px;margin-top:8px;box-shadow:0 -6px 16px rgba(0,0,0,.08)}
.barra-pedido .l{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:12px;
  color:var(--gris);margin-bottom:8px}
.barra-pedido .l b{color:var(--tinta);font-size:18px}
@media(max-width:900px){
  .barra-pedido{margin:8px -12px -12px;border-radius:0;border-width:1px 0 0;
    padding-bottom:calc(12px + env(safe-area-inset-bottom))}
}

/* ---------- Producción ---------- */
.ren-recep{border:1px solid var(--linea);border-radius:12px;padding:12px;margin:10px 0;background:#fff}
.ren-recep h3{margin:0;font-size:15px}
input.peso{font-size:20px;font-weight:700;text-align:right;font-variant-numeric:tabular-nums;padding:10px 12px}
input.peso.fuerte{border-color:var(--marca)}
.dif{font-size:12px;font-weight:700;padding:3px 8px;border-radius:99px;white-space:nowrap}
.dif.mal{background:#FEE2E2;color:#B91C1C}.dif.ok{background:#DCFCE7;color:#15803D}
.cavas{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:12px}
.cava-c{border:2px solid var(--linea);border-radius:12px;padding:10px 12px;background:#fff;text-align:left;
  font-family:inherit;color:var(--tinta);cursor:pointer}
.cava-c.on{border-color:var(--marca);background:var(--suave)}
.cava-c b{font-size:16px}
.tag{font-size:10.5px;font-weight:700;padding:1px 7px;border-radius:99px;background:var(--mute);margin-left:4px;white-space:nowrap}
.tag.r{background:#FEE2E2;color:#B91C1C}.tag.a{background:#FEF3C7;color:#92400E}
.caja-accion{border:1px solid var(--linea);border-radius:10px;padding:10px;margin-top:10px;background:var(--mute)}
/* ---------- Finanzas ---------- */
.dos-fin{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:12px;align-items:start}
.dos-fin>.card,.dos-fin>div>.card{margin-bottom:12px}
/* Flujo de caja: la semana abierta en amarillo, lo vencido aparte y lo estimado en cursiva */
.tabla-fl{font-size:12.5px}
.tabla-fl th{white-space:nowrap;cursor:pointer}
.tabla-fl td.der{white-space:nowrap}
.tabla-fl .sel-fl{background:#FEFCE8}
.tabla-fl th.sel-fl{background:#FEF9C3;color:#713F12}
.tabla-fl .venc-fl{background:#FEF2F2}
.tabla-fl th.venc-fl{color:#991B1B}
.tabla-fl tr.grupo-fl td{font-weight:800;font-size:11px;text-transform:uppercase;letter-spacing:.4px;color:var(--gris);background:#F6F7F7}
.tabla-fl tr.sub-fl td{font-weight:700}
.tabla-fl tr.saldo-fl td{font-weight:800;font-size:13.5px}
.tabla-fl tr.saldo-fl.fin td{border-top:2px solid var(--tinta)}
.est-fl,.est-fl td{font-style:italic;color:#6B7280}
.pos-fl{color:#15803D}.neg-fl{color:#B91C1C}
.barras-fl{display:flex;gap:10px;padding:8px 4px 0;margin-top:6px}
.barras-fl .s{flex:1;display:flex;flex-direction:column;align-items:center;font-size:10.5px;color:var(--gris);cursor:pointer}
.barras-fl .arr{height:90px;width:100%;display:flex;align-items:flex-end;justify-content:center;border-bottom:1px solid #9CA3AF}
.barras-fl .aba{width:100%;display:flex;align-items:flex-start;justify-content:center}
.barras-fl .s i{display:block;width:70%;max-width:80px;border-radius:4px 4px 0 0;background:#2a78d6}
.barras-fl .s i.neg{background:#B91C1C;border-radius:0 0 4px 4px}
.semana-fl{border:1px solid var(--linea);border-radius:12px;background:#fff;padding:10px 12px;margin-bottom:8px;cursor:pointer}
.semana-fl.hoy{background:#FEFCE8}.semana-fl.rojo{border-color:#FCA5A5}.semana-fl.venc{background:#FEF2F2}
.semana-fl.on{border:2px solid var(--marca)}
.semana-fl .h{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.semana-fl .l{display:flex;justify-content:space-between;font-size:12.5px;padding:2px 0;font-variant-numeric:tabular-nums}
.pago-cuota{border:1px solid var(--linea);border-radius:10px;padding:10px 12px;margin-top:10px;background:#fff}
.subir-cashea{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.lin-cs{display:flex;justify-content:space-between;gap:8px;padding:3px 0;font-size:13px;font-variant-numeric:tabular-nums}
.lin-cs.tot{font-weight:800;border-top:1px solid var(--linea);margin-top:4px;padding-top:6px;font-size:14px}
.mov-fl{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-top:1px solid var(--linea);font-size:13px}
.mov-fl .mono{white-space:nowrap;font-weight:700}
/* Gasto: cuatro pasos numerados y un pie fijo con cuánto es */
.dos-gf{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:14px;align-items:start}
@media(max-width:1100px){ .dos-gf{grid-template-columns:minmax(0,1fr)} }
.form-gf{padding-bottom:0}
.paso-gf{display:flex;gap:10px;align-items:flex-start;margin-top:14px}
.paso-gf .n{flex:0 0 24px;height:24px;border-radius:50%;background:var(--marca);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;font-size:12px;margin-top:1px}
.paso-gf .n.mas{background:#9CA3AF}
.paso-gf .cu{flex:1;min-width:0}
.paso-gf h4{margin:0 0 6px;font-size:14px}
.seg-gf{display:flex;border:1px solid var(--linea);border-radius:10px;overflow:hidden;background:#fff}
.seg-gf button{flex:1;border:0;border-right:1px solid var(--linea);background:none;padding:9px 6px;font:inherit;font-size:13px;font-weight:700;color:var(--gris);cursor:pointer}
.seg-gf button:last-child{border-right:0}
.seg-gf button.on{background:var(--marca);color:#fff}
.seg-gf button:disabled{opacity:.45;cursor:not-allowed}
.seg-gf button small{display:block;font-weight:500;font-size:10.5px;opacity:.85}
.ctas-gf{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.check-gf{display:flex;gap:8px;align-items:center;margin:8px 0 0;font-size:13px;font-weight:500;text-transform:none;letter-spacing:0;color:var(--tinta)}
.check-gf input{width:auto;margin:0}
.pie-gf{position:sticky;bottom:0;background:#fff;border-top:1px solid var(--linea);margin:14px -14px 0;padding:10px 14px;
        display:flex;justify-content:space-between;align-items:center;gap:10px;border-radius:0 0 12px 12px;z-index:2}
.pie-gf .bot{display:flex;gap:8px;flex:0 0 auto}
.pie-gf .bot .b{width:auto;padding-left:20px;padding-right:20px;white-space:nowrap}
.res-gf{font-size:12px;color:var(--gris);min-width:0;flex:1}
#gf_pie{flex:1;min-width:0}
.res-gf span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.res-gf b{color:var(--tinta);font-size:16px;font-variant-numeric:tabular-nums}
@media(max-width:600px){ .res-gf span{display:none} .pie-gf .bot .b.sec{display:none} .pie-gf .bot .b{padding-left:14px;padding-right:14px} }
.it-gf{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px solid var(--linea);font-size:13px}
.it-gf .m{font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap;text-align:right}
.it-gf .m .t10{color:var(--gris);font-weight:500}
.it-gf .acc{display:flex;gap:4px;justify-content:flex-end;margin-top:4px}
.it-gf .acc .b{width:auto}
.tag-gf{display:inline-block;font-size:10.5px;font-weight:700;border-radius:999px;padding:1px 8px}
.tag-gf.ok{background:#ECFDF5;color:#065F46}.tag-gf.pp{background:#FFF7ED;color:#9A3412}
.tag-gf.f{background:#EEF4FC;color:#1E40AF}.tag-gf.r{background:#F3F4F6;color:#374151}
.cifras-fin{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}
.cifra-fin{background:#fff;border:1px solid var(--linea);border-radius:12px;padding:10px 12px}
.cifra-fin .l{font-size:10.5px;font-weight:700;color:var(--gris);text-transform:uppercase;letter-spacing:.03em}
.cifra-fin .n{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums;margin:2px 0}
.cifra-fin .s{font-size:11.5px;color:var(--gris)}
.hb-fin{display:grid;grid-template-columns:minmax(0,150px) minmax(0,1fr) 80px;gap:8px;align-items:center;font-size:12.5px;margin:6px 0}
.hb-fin .b{height:12px;background:var(--mute);border-radius:4px;overflow:hidden}
.hb-fin .b span{display:block;height:100%;background:#2a78d6;border-radius:0 4px 4px 0}
.hb-fin .v{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.linea-caja{border-top:1px solid var(--linea);padding:8px 0}
.linea-caja .t{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.linea-caja>input{margin:4px 0 0;font-size:17px;font-weight:700;text-align:right}
.bnpl-fin{background:#EEF4FC;border:1px solid #C7DBF5;border-radius:10px;padding:8px 10px;margin-top:4px;font-size:12px}
.fila2-fin{display:flex;justify-content:space-between;gap:8px;font-size:13px;padding:6px 0;border-top:1px solid var(--linea)}
.mov-rev{background:#FAFAFA;border:1px solid var(--linea);border-radius:10px;padding:10px 12px}
.sug-rev{background:#F0FDF4;border:1px solid #BBF7D0;border-radius:10px;padding:9px 12px;margin-top:10px}
.tag-rev{display:inline-block;font-size:10.5px;font-weight:700;border-radius:999px;padding:1px 8px;margin-top:3px}
.tag-rev.t-ok{background:#DCFCE7;color:#166534}.tag-rev.t-am{background:#FEF3C7;color:#92400E}
.tag-rev.t-gr{background:var(--mute);color:#55605B}.tag-rev.t-az{background:#DBEAFE;color:#1E40AF}
.previa-regla{margin-top:6px;font-size:11.5px;background:#FAFAFA;border:1px solid var(--linea);border-radius:8px;padding:6px 8px}
.grupo-caja{font-size:10.5px;font-weight:800;text-transform:uppercase;color:var(--oscuro);background:var(--suave);border-radius:6px;padding:3px 8px;margin-top:8px}
.kpis-detal{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.kpis-detal>div{border:1px solid var(--linea);border-radius:10px;padding:8px 10px}
.kpis-detal small{display:block;font-size:10px;font-weight:800;color:var(--gris);text-transform:uppercase}
.kpis-detal b{font-size:18px}.kpis-detal span{display:block;font-size:11px;color:var(--gris)}
.tabla-detal tr.sub-detal td{background:#FAFAFA;color:var(--gris);font-size:12px}
.tabla-detal tr.total-detal td{font-weight:800;border-top:2px solid var(--tinta)}
.falta-detal{color:#B45309;font-weight:700}
.fila2-fin b{font-variant-numeric:tabular-nums}
.cifras-fin.cuatro{grid-template-columns:repeat(4,minmax(0,1fr))}
.lado-pp{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:start}
table.pp-fin tr.grupo-pp td{background:var(--pagina);font-weight:700;font-size:13px}
table.pp-fin td{vertical-align:middle}
.sem-sal{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px}
.ind-sal{background:#fff;border:1px solid var(--linea);border-radius:12px;padding:10px 12px;border-left:5px solid #15803D}
.ind-sal.ojo{border-left-color:#D97706}.ind-sal.alto{border-left-color:#B91C1C}
.ind-sal .k{font-size:10.5px;text-transform:uppercase;color:var(--gris);font-weight:700;display:flex;justify-content:space-between;gap:6px}
.ind-sal .v{font-size:20px;font-weight:800;font-variant-numeric:tabular-nums;margin:2px 0}
.ind-sal .d{font-size:11.5px;color:#4B5563;line-height:1.35}
.est-sal{font-size:10.5px;font-weight:700;border-radius:999px;padding:1px 8px;text-transform:none;white-space:nowrap}
.est-sal.bien{background:#DCFCE7;color:#166534}.est-sal.ojo{background:#FEF3C7;color:#92400E}.est-sal.alto{background:#FEE2E2;color:#991B1B}
.dos-sal{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:start}
.barras-sal{display:flex;gap:10px;height:140px;align-items:stretch;border-bottom:1px solid var(--linea);margin-top:8px}
.mes-sal{flex:1;display:flex;flex-direction:column;min-width:0}
.col-sal{flex:1;display:flex;gap:2px;align-items:flex-end}
.col-sal span{flex:1;border-radius:4px 4px 0 0;min-height:2px}
.eti-sal{text-align:center;color:var(--gris);padding-top:3px;height:14px}
.ley-sal{display:flex;gap:12px;flex-wrap:wrap;font-size:11px;color:var(--gris);margin-top:20px}
.ley-sal i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:middle}
.cl-sal{background:linear-gradient(180deg,#FBF7F2,#fff);border:1px solid #E7D9C6}
.cl-sal h4{margin:8px 0 2px;font-size:13px}.cl-sal p,.cl-sal li{font-size:12.5px;line-height:1.45;margin:3px 0}.cl-sal ul{margin:2px 0;padding-left:18px}
.leer-cl{display:flex;align-items:center;gap:10px;justify-content:space-between;border:1.5px dashed #E0B36A;background:#FDF8EE;border-radius:10px;
  padding:9px 12px;margin:8px 0;font-size:12.5px;flex-wrap:wrap}
.leer-cl span{flex:1;min-width:200px}
input.leido-cl{background:#FDF6E3;border-color:#E0B36A}
@media(max-width:800px){.sem-sal{grid-template-columns:1fr 1fr}.dos-sal{grid-template-columns:1fr}}
@media(max-width:520px){.sem-sal{grid-template-columns:1fr}}
.sf-dash{display:flex;gap:16px;align-items:center;flex-wrap:wrap;border-left:4px solid #1D4ED8}
.sf-dash .sf-tot{flex:0 0 auto;min-width:180px}
.sf-dash .sf-et{flex:1;grid-template-columns:repeat(3,1fr);min-width:0}
@media(max-width:600px){.sf-dash .sf-et{grid-template-columns:1fr 1fr 1fr;gap:6px}.sf-dash .sf-et .mono{font-size:15px !important}}
.eq-usd{font-size:10.5px;color:var(--gris);font-weight:400;white-space:nowrap;font-family:system-ui}
.chk-pp{width:16px;height:16px;margin:0 4px 0 0;vertical-align:middle;accent-color:var(--marca)}
.tag-ant{display:inline-block;font-size:10.5px;font-weight:700;border-radius:999px;padding:1px 8px;background:#ECFDF5;color:#065F46;white-space:nowrap}
.ant-pp{font-size:12.5px;margin:8px 2px 0;line-height:1.8}
.barra-pp{position:sticky;bottom:8px;z-index:1;background:#1F2937;color:#fff;border-radius:10px;padding:8px 12px;margin-top:8px;
  display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px}
.barra-pp .b{width:auto;margin:0}
.barra-pp .b.sec{background:transparent;color:#fff;border-color:#6B7280}
.fact-pf{display:flex;flex-direction:column;gap:4px;margin-bottom:8px;max-height:220px;overflow-y:auto}
.fpf{display:flex;align-items:center;gap:8px;border:1.5px solid var(--linea);border-radius:8px;padding:6px 9px;cursor:pointer;margin:0;font-size:13px;text-transform:none;letter-spacing:0;font-weight:400;color:inherit}
.fpf.on{border-color:var(--marca);background:#FEF2F2}
.fpf input{width:16px;height:16px;margin:0;accent-color:var(--marca)}
.fpf b{margin-left:auto}
.clase-fin{display:inline-block;border-radius:999px;padding:3px 9px;font-size:11.5px;font-weight:600;background:#EEF2FF;color:#3730A3;white-space:nowrap}
select.clase-sel{margin:0;padding:3px 8px;font-size:12px;border-radius:999px;width:auto;max-width:200px;height:auto;
  background:#EEF2FF;color:#3730A3;border:1px solid #C7D2FE;font-weight:600}
select.clase-sel.falta{background:#FEF3C7;color:#92400E;border:1px dashed #D97706}
.tagv-fin{font-size:10.5px;font-weight:700;color:#B91C1C;white-space:nowrap}
.sug-fin{background:#EFF6FF;border:1px solid #BFDBFE;border-radius:8px;padding:6px 9px;font-size:12px;color:#1E3A8A;margin:4px 0 6px}
.prog-fin{height:8px;background:var(--mute);border-radius:4px;overflow:hidden;margin:6px 0 2px}
.prog-fin span{display:block;height:100%;background:#15803D}
.chip.sugerida{border-color:#2a78d6;box-shadow:inset 0 0 0 1px #2a78d6}
.barra-adm{padding:10px 14px}
.barra-adm a{color:#2a78d6;text-decoration:none;font-weight:600}
.hermanos-adm{display:flex;gap:6px;overflow-x:auto;margin-top:6px;padding-bottom:2px}
.hermanos-adm .chip{flex:0 0 auto}
.pend-adm{display:flex;flex-wrap:wrap;gap:8px}
.pend-adm a{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--linea);border-left:4px solid #B45309;
            border-radius:10px;padding:8px 12px;font-size:13px;color:var(--tinta);text-decoration:none}
.pend-adm a.rojo{border-left-color:#B91C1C}
.pend-adm a b{font-size:17px}
.grupos-adm{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-bottom:12px}
.gr-adm{background:#fff;border:1px solid var(--linea);border-radius:12px;padding:10px 12px}
.gr-adm h4{margin:0 0 4px;font-size:12px;text-transform:uppercase;letter-spacing:.4px;color:var(--gris)}
.gr-adm a{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 4px;border-top:1px solid var(--linea);
          color:var(--tinta);text-decoration:none;font-size:14px}
.gr-adm a:first-of-type{border-top:0}
.gr-adm a:hover{background:#F6F7F7}
.gr-adm a small{display:block;color:var(--gris);font-size:11.5px}
.n-adm:empty{display:none}
.n-adm{font-size:11px;font-weight:700;border-radius:999px;padding:1px 7px;background:#FEF2F2;color:#991B1B}
.alta-plegada{display:none}
.cab-lista-adm{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
.cab-lista-adm h2{margin:0}
/* Permisos: el menú de la app con sus pestañas, y la tabla de todo el equipo */
.arbol-perm{columns:2 340px;column-gap:14px}
.grupo-perm{break-inside:avoid;border:1px solid var(--linea);border-radius:10px;padding:8px 10px;margin-bottom:10px}
.menu-perm{display:flex;align-items:center;gap:8px;padding:6px 0;border-top:1px solid var(--linea)}
.grupo-perm .franja + .menu-perm{border-top:0}
.menu-perm b{flex:1;font-size:13.5px}
.pest-perm{display:flex;align-items:center;gap:8px;padding:3px 0 3px 26px;font-size:12.5px}
.pest-perm > span:not(.tag-perm){flex:1}.pest-perm small{display:block;color:var(--gris);font-size:10.5px}
.pest-perm.apagada{opacity:.45}
.interruptor.chico{transform:scale(.8)}
.tag-perm.quitado{background:#FEE2E2;color:#991B1B}
.matriz-perm{border-collapse:collapse}
.matriz-perm th{font-size:10px;color:var(--gris);font-weight:700;vertical-align:bottom;padding:4px 2px}
.matriz-perm th span{writing-mode:vertical-rl;transform:rotate(180deg);display:inline-block;max-height:110px;white-space:nowrap}
.matriz-perm td{text-align:center;padding:3px 2px;border-top:1px solid var(--linea)}
.matriz-perm .nom{text-align:left;padding-right:10px;white-space:nowrap}
.celda-perm{border:0;background:none;font-weight:800;font-size:12px;cursor:pointer;color:#9CA3AF;padding:2px 4px;border-radius:6px}
.celda-perm.p{color:#166534}.celda-perm.x{color:#9A3412;background:#FFF7ED}.celda-perm.q{color:#B91C1C;background:#FEE2E2}
.perm-fila{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--linea);font-size:13.5px}
.perm-fila small{display:block;color:var(--gris);font-size:11.5px}
.tag-perm{display:inline-block;font-size:10.5px;font-weight:700;border-radius:999px;padding:1px 8px}
.tag-perm.perfil{background:#EEF4FC;color:#1E40AF}.tag-perm.propio{background:#FFF7ED;color:#9A3412}
.interruptor{width:40px;height:23px;border-radius:999px;background:#D1D5DB;position:relative;border:0;cursor:pointer;flex:0 0 auto;padding:0}
.interruptor::after{content:"";position:absolute;top:3px;left:3px;width:17px;height:17px;border-radius:50%;background:#fff;transition:left .15s}
.interruptor.on{background:#15803D}.interruptor.on::after{left:20px}
.paso-po{display:flex;gap:10px;align-items:flex-start;margin-top:8px}
.paso-po .n{flex:0 0 26px;height:26px;border-radius:50%;background:var(--marca);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;font-size:13px;margin-top:18px}
.vend-po{background:#ECFDF5;border:1px solid #A7F3D0;border-radius:10px;padding:8px 10px;font-size:13px;margin:6px 0}
.item-po{border-top:1px solid var(--linea);padding:8px 0;font-size:13px}
.item-po .a{display:flex;justify-content:space-between;gap:8px}
/* En el teléfono cada renglón del pedido de oficina es una tarjeta: la tabla no cabe */
@media(max-width:600px){
  .tabla-po thead{display:none}
  .tabla-po,.tabla-po tbody{display:block}
  .tabla-po tr{display:grid;grid-template-columns:1fr auto;gap:4px 8px;padding:8px 0;border-bottom:1px solid var(--linea)}
  .tabla-po td{display:block;border:0;padding:0}
  .tabla-po td:first-child{grid-column:1}
  .tabla-po td:last-child{grid-column:2;grid-row:1}
  .tabla-po td:nth-child(2){grid-column:1 / -1;text-align:left}
  .tabla-po td[data-rot]{grid-column:1 / -1;display:flex;justify-content:space-between}
  .tabla-po td[data-rot="Precio"]{flex-wrap:wrap;gap:6px;align-items:center;justify-content:flex-end}
  .tabla-po td[data-rot="Precio"]::before{margin-right:auto}
  .tabla-po .tope-po{flex-basis:100%;text-align:right}
  .tabla-po td[data-rot]::before{content:attr(data-rot);color:var(--gris);font-family:system-ui;font-size:12px}
}
.leer-oc{display:flex;align-items:center;gap:10px;justify-content:space-between;border:1.5px dashed #93C5FD;background:#EFF6FF;border-radius:10px;padding:9px 12px;margin:0 0 8px;cursor:pointer;font-size:12.5px;flex-wrap:wrap}
.leer-oc .b{width:auto;margin:0;flex:0 0 auto}
.tag-oc{display:inline-block;font-size:10.5px;font-weight:700;border-radius:999px;padding:1px 8px;white-space:nowrap}
.tag-oc.ok{background:#DCFCE7;color:#166534}.tag-oc.av{background:#FEF3C7;color:#92400E}.tag-oc.mal{background:#FEE2E2;color:#991B1B}
.dato-oc{border:1px solid var(--linea);border-radius:8px;padding:8px 10px;font-size:13px;background:#F9FAFB;min-height:18px}
.tabla-oc{width:100%;border-collapse:collapse;margin-top:8px;font-size:13px}
.tabla-oc th{font-size:11px;color:var(--gris);text-align:left;border-bottom:1px solid var(--linea);padding:5px 6px}
.tabla-oc td{border-bottom:1px solid var(--linea);padding:6px;vertical-align:top}
.tabla-oc .der{text-align:right}
.tabla-oc tr.falta{background:#FFFBEB}
.cab-oc{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.cab-oc>div{flex:1 1 220px;min-width:0}
.pie-oc{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:8px;flex-wrap:wrap}
@media(max-width:600px){
  .tabla-oc thead{display:none}
  .tabla-oc,.tabla-oc tbody{display:block}
  .tabla-oc tr{display:block;padding:8px 4px;border-bottom:1px solid var(--linea)}
  .tabla-oc td{display:flex;justify-content:space-between;gap:8px;border:0;padding:2px 0}
  .tabla-oc td[data-rot="Producto de Prova"]{display:block}
  .tabla-oc td::before{content:attr(data-rot);color:var(--gris);font-size:12px;flex:0 0 auto}
  .tabla-oc td[data-rot="Producto de Prova"]::before{display:block;margin-bottom:2px}
  .pie-oc .b{width:100% !important}
}
.tag-po{display:inline-block;font-size:10.5px;font-weight:700;border-radius:999px;padding:1px 8px;background:#EEF4FC;color:#1E40AF}
tr.fila-cli{cursor:pointer}
tr.fila-cli:hover td{background:#F6F7F7}
tr.marcada-cli td{background:#FEF9C3}
.datos-ficha{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px 16px;font-size:13px;margin-top:10px}
.k-ficha{font-size:10.5px;text-transform:uppercase;color:var(--gris);font-weight:700;letter-spacing:.3px}
.suc-ficha{border:1px solid var(--linea);border-radius:12px;padding:10px 12px;margin-bottom:10px;background:#fff;scroll-margin-top:12px}
.suc-ficha.abierta{border:2px solid var(--marca)}
.suc-ficha .h{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.form-suc{border-top:1px dashed var(--linea);margin-top:8px;padding-top:8px}
.tag-suc{display:inline-block;font-size:10.5px;font-weight:700;border-radius:999px;padding:1px 8px;margin-left:4px}
.tag-suc.ok{background:#ECFDF5;color:#065F46}.tag-suc.mal{background:#FEF2F2;color:#991B1B}
.tag-ne{background:#F3F4F6;color:#374151;border-radius:999px;padding:0 6px;font-weight:700}
.grande-cp{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 12px}
.grande-cp button{border:1px solid var(--marca);background:var(--marca);border-radius:14px;padding:16px 14px;font:800 16px system-ui;text-align:left;cursor:pointer;color:#fff}
.grande-cp button small{display:block;font-weight:500;color:#fff;opacity:.85;font-size:12px;margin-top:3px}
.item-cp{border-top:1px solid var(--linea);padding:8px 0;font-size:13px}
.item-cp .a{display:flex;justify-content:space-between;align-items:center;gap:8px}
.tag-cp{display:inline-block;font-size:10.5px;font-weight:700;border-radius:999px;padding:1px 7px;white-space:nowrap}
.tag-cp.fac{background:#EEF4FC;color:#1E40AF}.tag-cp.ne{background:#F3F4F6;color:#374151}
.tag-cp.pag{background:#ECFDF5;color:#065F46}.tag-cp.pen{background:#FFF7ED;color:#9A3412}
.calc-ff{background:#F6F7F7;border:1px solid var(--linea);border-radius:10px;padding:8px 10px;font-size:13px;margin:6px 0}
.calc-ff .r{display:flex;justify-content:space-between;gap:8px;padding:2px 0;font-variant-numeric:tabular-nums}
.calc-ff .r.t{border-top:1px solid var(--linea);margin-top:4px;padding-top:5px;font-weight:800}
.calc-ff .r.ret{color:#B91C1C}
.ctas-pf{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px}
.cta-pf{border:1px solid var(--linea);border-radius:9px;padding:7px 10px;cursor:pointer;background:#fff;text-align:left;font:inherit}
.cta-pf b{display:block;font-size:12.5px}
.cta-pf span{font-size:11px;color:var(--gris)}
.cta-pf.on{border-color:var(--marca);box-shadow:inset 0 0 0 1px var(--marca)}
.eq-pf{background:#EFF6FF;border:1px solid #BFDBFE;border-radius:9px;padding:8px 10px;font-size:12.5px;margin:2px 0 10px}
.eq-pf:empty{display:none}
.cuentas-fin{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin-bottom:12px}
.cuenta-fin{background:#fff;border:1px solid var(--linea);border-radius:12px;padding:10px 12px;cursor:pointer}
.cuenta-fin.on{border-color:var(--marca);box-shadow:inset 0 0 0 1px var(--marca)}
.cuenta-fin .t{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.cuenta-fin .saldo{font-size:20px;font-weight:800;font-variant-numeric:tabular-nums;margin:4px 0 0}
.cuenta-fin .eq{font-size:12px;color:var(--gris)}
.cuenta-fin .pie{display:flex;justify-content:space-between;gap:6px;border-top:1px solid var(--linea);margin-top:8px;padding-top:6px;font-size:11.5px;color:var(--gris)}
.pend-fin{display:inline-block;background:#FEF3C7;color:#92400E;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:700}
.paso-fin{display:flex;gap:10px;align-items:flex-start;font-size:13px;margin:6px 0}
.paso-fin i{flex:0 0 22px;height:22px;border-radius:50%;background:var(--marca);color:#fff;font-style:normal;font-weight:800;
  display:flex;align-items:center;justify-content:center;font-size:12px}
.match-fin{border-radius:8px;padding:5px 8px;font-size:12px;margin-bottom:4px}
.match-fin.exacta{background:#ECFDF5;border:1px solid #A7F3D0;color:#065F46}
.match-fin.sug{background:#EFF6FF;border:1px solid #BFDBFE;color:#1E3A8A}
.match-fin.tras{background:#F5F3FF;border:1px solid #DDD6FE;color:#4C1D95}
.match-fin.nada{background:#FEF3C7;border:1px dashed #D97706;color:#92400E}
.match-fin .acc,.acc-banco .acc{display:flex;gap:6px;margin-top:5px;flex-wrap:wrap}
.acc-banco{display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}
.acc-banco>.match-fin{flex:1 1 100%}
.mini-fin{font-size:11.5px;padding:3px 9px;border-radius:999px;border:1px solid var(--linea);background:#fff;font-weight:600;cursor:pointer;color:var(--tinta)}
.siempre-fin{display:flex;gap:4px;align-items:center;flex-wrap:wrap;font-size:11.5px;margin:0;text-transform:none;letter-spacing:0;font-weight:500;color:inherit}
.siempre-fin input[type=checkbox]{width:auto;margin:0}
table.conc-fin td{vertical-align:top}
table.conc-fin td.c-que{min-width:260px}
tr.hecha-fin{opacity:.55}
@media(max-width:900px){ .dos-fin{grid-template-columns:minmax(0,1fr)} .lado-pp{grid-template-columns:minmax(0,1fr)}
  .cifras-fin.cuatro{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media(max-width:600px){
  .cifras-fin{grid-template-columns:minmax(0,1fr)}
  table.gastos-fin>tbody>tr{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"cta usd" "area monto" "quien acc" "fecha acc"}
  table.gastos-fin .c-cta{grid-area:cta} table.gastos-fin .c-usd{grid-area:usd} table.gastos-fin .c-area{grid-area:area}
  table.gastos-fin .c-monto{grid-area:monto} table.gastos-fin .c-quien{grid-area:quien} table.gastos-fin .c-fecha{grid-area:fecha}
  table.gastos-fin .c-acc{grid-area:acc;text-align:right;align-self:end}
  table.pp-fin>tbody>tr.fila-deuda{grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:"doc queda" "emi total" "vence total" "clase acc"}
  table.pp-fin .c-doc{grid-area:doc;font-weight:700} table.pp-fin .c-queda{grid-area:queda;text-align:right}
  table.pp-fin .c-emi{grid-area:emi} table.pp-fin .c-vence{grid-area:vence} table.pp-fin .c-total{grid-area:total;text-align:right}
  table.pp-fin .c-clase{grid-area:clase} table.pp-fin .c-acc{grid-area:acc;text-align:right;align-self:end}
  table.conc-fin>tbody>tr{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"fecha monto" "desc desc" "que que"}
  table.conc-fin .c-fecha{grid-area:fecha} table.conc-fin .c-monto{grid-area:monto;text-align:right}
  table.conc-fin .c-desc{grid-area:desc} table.conc-fin td.c-que{grid-area:que;min-width:0}
  table.pp-fin>tbody>tr.grupo-pp{grid-template-columns:minmax(0,1fr) auto;background:var(--pagina);padding:8px 6px}
  table.pp-fin tr.grupo-pp td{background:none}
}

/* ---------- Accesos ---------- */
.cifras-acc{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}
.cifra-acc{background:#fff;border:1px solid var(--linea);border-radius:12px;padding:10px 12px}
.cifra-acc .n{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums}
.cifra-acc .l{font-size:10.5px;font-weight:700;color:var(--gris);text-transform:uppercase;letter-spacing:.03em}
.alerta-acc{display:flex;gap:10px;align-items:flex-start;padding:9px 10px;border-radius:10px;margin:6px 0;font-size:13px}
.alerta-acc.r{background:#FEF2F2;border:1px solid #FECACA} .alerta-acc.a{background:#FFFBEB;border:1px solid #FDE68A}
.alerta-acc .ic{font-size:17px;line-height:1.2} .alerta-acc b{display:block;overflow-wrap:anywhere}
.alerta-acc .t{color:var(--gris);font-size:12px} .alerta-acc button{flex-shrink:0}
.acc-grid{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:12px;align-items:start}
.acc-grid>.card{margin-bottom:0}
.punto-acc{display:inline-block;width:8px;height:8px;border-radius:99px;margin-right:6px;vertical-align:1px;background:#9CA3AF}
.punto-acc.ok{background:#16A34A}.punto-acc.mal{background:#DC2626}.punto-acc.med{background:#D97706}
table.libro tr.sel td{background:var(--suave)}
.usr-acc{display:flex;justify-content:space-between;gap:8px;padding:9px 4px;border-top:1px solid var(--linea);font-size:13px;cursor:pointer}
.usr-acc.sel{background:var(--suave)}
.dia-acc{font-size:10.5px;font-weight:700;color:var(--gris);text-transform:uppercase;margin:10px 0 2px}
.ev-acc{display:grid;grid-template-columns:auto 22px minmax(0,1fr);gap:6px;padding:7px 0;border-top:1px solid var(--linea);font-size:13px}
.ev-acc .h{color:var(--gris);font-variant-numeric:tabular-nums;font-size:12px;white-space:nowrap;min-width:58px}
.ev-acc .d{color:var(--gris);font-size:11.5px;overflow-wrap:anywhere}
@media(max-width:1100px){ .acc-grid{grid-template-columns:minmax(0,1fr)} }
@media(max-width:600px){ .cifras-acc{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px} }
.fila-art{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 2px;border-top:1px solid var(--linea)}
.plantillas{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:10px;margin-bottom:12px}
.plant-c{border:1px solid var(--linea);border-radius:12px;padding:12px;background:#fff}
.ent-desp{display:grid;grid-template-columns:minmax(0,1fr) 140px auto;gap:8px;align-items:center;padding:8px 0;
  border-top:1px solid var(--linea)}
.ent-desp input.peso,.ren-desp input.peso{font-size:17px;padding:8px 10px;margin:0}
.ren-desp{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,.8fr) 130px minmax(0,.9fr) 40px;
  grid-template-areas:"nom esp kg real x";gap:8px;align-items:center;padding:8px 0;border-top:1px solid var(--linea)}
.ren-desp .c-nom{grid-area:nom} .ren-desp .c-esp{grid-area:esp} .ren-desp .c-kg{grid-area:kg}
.ren-desp .c-real{grid-area:real} .ren-desp .c-x{grid-area:x;padding:6px 0}
.ren-desp .c-esp,.ren-desp .c-real{font-size:11.5px;color:var(--gris);text-align:right}
.ren-desp.cab{font-weight:700;text-transform:uppercase;color:var(--gris);border-top:0;padding-bottom:2px}
.ren-desp.cab .c-kg{text-align:right}
table.despieces tr.detalle td{background:var(--mute);padding:8px}
@media(max-width:600px){
  table.despieces>tbody>tr{grid-template-columns:repeat(3,minmax(0,1fr));
    grid-template-areas:"desp desp fecha" "entro salio rinde" "costo kg kg"}
  table.despieces>tbody>tr>.c-desp{grid-area:desp} table.despieces>tbody>tr>.c-fecha{grid-area:fecha;text-align:right}
  table.despieces>tbody>tr>.c-entro{grid-area:entro;text-align:left} table.despieces>tbody>tr>.c-salio{grid-area:salio;text-align:left}
  table.despieces>tbody>tr>.c-rinde{grid-area:rinde} table.despieces>tbody>tr>.c-costo{grid-area:costo;text-align:left}
  table.despieces>tbody>tr>.c-kg{grid-area:kg}
  table.despieces>tbody>tr.detalle{grid-template-columns:minmax(0,1fr);grid-template-areas:none;padding:0}
  table.det-desp tr{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"corte corte kg" "lote rinde costo";padding:6px 2px}
  table.det-desp td{padding:1px 0 !important;line-height:1.3}
  table.det-desp .c-corte{grid-area:corte} table.det-desp .c-kg{grid-area:kg} table.det-desp .c-lote{grid-area:lote}
  table.det-desp .c-rinde{grid-area:rinde} table.det-desp .c-costo{grid-area:costo}
  .ren-desp{grid-template-columns:minmax(0,1fr) 120px 40px;grid-template-areas:"nom kg x" "esp real real";row-gap:2px}
  .ren-desp .c-esp{text-align:left} .ren-desp .c-esp:not(:empty)::before{content:"Esperado "}
  .ren-desp.cab{display:none}
  .ent-desp{grid-template-columns:minmax(0,1fr) 110px auto}
}
@media(max-width:600px){
  table.libro.inv tr{grid-template-columns:repeat(3,minmax(0,1fr));
    grid-template-areas:"art art acc" "cava entro queda" "costo valor ."}
  table.libro.inv .c-art{grid-area:art} table.libro.inv .c-acc{grid-area:acc;text-align:right}
  table.libro.inv .c-cava{grid-area:cava} table.libro.inv .c-entro{grid-area:entro}
  table.libro.inv .c-queda{grid-area:queda} table.libro.inv .c-costo{grid-area:costo;text-align:left}
  table.libro.inv .c-valor{grid-area:valor;text-align:left}
}

/* ---------- Cobranza: cartera y cuenta corriente ---------- */
.cta{display:flex;align-items:center;gap:10px;padding:10px 4px;border-top:1px solid var(--linea);cursor:pointer}
.cta:hover{background:var(--pagina)}
.cta-nombre{font-weight:600;line-height:1.3}
.cta-marcas{display:flex;gap:6px;flex-wrap:wrap;align-items:center;margin-top:2px}
.cta-flecha{color:var(--gris);font-size:20px;flex:0 0 auto}
.marca{font-size:10.5px;font-weight:600;padding:1px 7px;border-radius:99px}
.marca.ambar{background:#FEF3C7;color:#92400E}
.marca.verde{background:#DCFCE7;color:#15803D}
.antiguedad{border-top:1px solid var(--linea);margin:12px 0 10px;padding-top:10px}
.barra-ant{display:flex;gap:2px;height:10px;border-radius:99px;overflow:hidden;background:var(--mute)}
.barra-ant.chica{height:4px;margin-top:5px;max-width:260px}
.tramos{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-top:8px}
.tramos .punto{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:3px}
@media(max-width:600px){ .tramos{grid-template-columns:repeat(3,minmax(0,1fr))} }
table.libro{font-size:12.5px}
table.libro td{padding:6px 7px;vertical-align:top}
table.libro td.num{text-align:right;font-variant-numeric:tabular-nums;font-feature-settings:"tnum";white-space:nowrap}
table.libro tr.vencida td:nth-child(2) .doc{color:#B91C1C}
table.libro .doc{font-weight:600;font-family:inherit;font-size:12.5px;text-transform:none;letter-spacing:0;
                 color:var(--tinta);margin:0;cursor:pointer;white-space:nowrap}
table.libro tr.anterior td{background:var(--pagina);font-weight:600}
table.libro tr.info td{color:var(--gris);font-style:italic}
table.libro tr.pago td:nth-child(5),table.libro tr.retencion td:nth-child(5),
table.libro tr.favor td:nth-child(5){color:#15803D}
table.libro tr.descuento td:nth-child(5),table.libro tr.nc td:nth-child(5){color:#B45309}
table.libro tfoot td{font-weight:700;border-top:2px solid var(--tinta);border-bottom:0}
/* En el teléfono cada renglón del libro es un bloque: fecha y
   documento arriba, el concepto entero, y los montos con su nombre */
@media(max-width:600px){
  table.libro.apilar thead{display:none}
  table.libro.apilar tr{display:grid;gap:2px 8px;padding:8px 2px;border-bottom:1px solid var(--linea)}
  table.libro.apilar td{padding:0;border:0}
  table.libro.apilar td:empty{display:none}
  table.libro.apilar td[data-l]::before{content:attr(data-l);display:block;font-size:9.5px;font-weight:700;
    text-transform:uppercase;letter-spacing:.03em;color:var(--gris);font-style:normal}
  table.libro.apilar tfoot tr{border-top:2px solid var(--tinta);border-bottom:0}
  table.libro.apilar tr.anterior{background:var(--pagina)} table.libro.apilar tr.anterior td{background:none}
  table.libro.apilar tfoot td{border:0}
  table.libro.movs tr{grid-template-columns:repeat(3,minmax(0,1fr));
    grid-template-areas:"fecha doc doc" "con con con" "debe haber saldo"}
  table.libro.movs .c-fecha{grid-area:fecha} table.libro.movs .c-doc{grid-area:doc;text-align:right}
  table.libro.movs .c-con{grid-area:con} table.libro.movs .c-debe{grid-area:debe;display:block !important}
  table.libro.movs .c-haber{grid-area:haber;display:block !important} table.libro.movs .c-saldo{grid-area:saldo}
  table.libro.movs tr.info .c-debe,table.libro.movs tr.info .c-haber,table.libro.movs tr.info .c-saldo,
  table.libro.movs tr.anterior .c-debe,table.libro.movs tr.anterior .c-haber{visibility:hidden}
  table.libro.docs tr{grid-template-columns:24px repeat(3,minmax(0,1fr));
    grid-template-areas:"chk doc doc saldo" "chk emi ven dias" "chk imp abo ."}
  table.libro.docs .c-chk{grid-area:chk;display:block !important} table.libro.docs .c-doc{grid-area:doc}
  table.libro.docs .c-saldo{grid-area:saldo} table.libro.docs .c-emi{grid-area:emi}
  table.libro.docs .c-ven{grid-area:ven} table.libro.docs .c-dias{grid-area:dias}
  table.libro.docs .c-imp{grid-area:imp;text-align:left} table.libro.docs .c-abo{grid-area:abo;text-align:left}
  table.libro.docs tfoot tr{grid-template-areas:"chk doc doc doc" "chk imp abo saldo"}
}
.caja-cobro{background:var(--pagina);border:1px solid var(--linea);border-radius:10px;padding:10px;margin-top:10px}

.aviso{padding:10px 12px;border-radius:9px;font-size:13px;margin-bottom:10px}
.aviso.ok{background:#DCFCE7;color:#15803D}
.aviso.mal{background:#FEE2E2;color:#B91C1C}
.aviso.info{background:var(--mute);color:#475569}

.capa{position:fixed;inset:0;background:rgba(20,22,21,.55);z-index:80;
      display:flex;align-items:center;justify-content:center;padding:16px}
.ventana{background:#fff;border-radius:14px;max-width:520px;width:100%;
         max-height:82vh;overflow-y:auto;padding:18px;
         box-shadow:0 18px 50px rgba(0,0,0,.25)}
.toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);
  background:var(--tinta);color:#fff;padding:11px 18px;border-radius:10px;
  font-size:13px;box-shadow:0 6px 20px rgba(0,0,0,.2);z-index:60;max-width:90vw}

/* ---------- Login ---------- */
.login{min-height:100%;display:flex;align-items:center;justify-content:center;padding:16px;
  background:linear-gradient(160deg,#7A1710 0%,var(--oscuro) 55%,#430D08 100%)}
.login .caja{background:#fff;border-radius:16px;padding:20px;width:100%;max-width:380px;
  box-shadow:0 12px 40px rgba(0,0,0,.28)}
.login h1{margin:0;font-size:26px;text-align:center;letter-spacing:-.02em}
.login .sub{text-align:center;color:var(--gris);font-size:13px;margin:0 0 16px}
.login .pie{text-align:center;color:rgba(255,255,255,.55);font-size:10.5px;margin-top:14px}

.cargando{display:flex;align-items:center;justify-content:center;gap:10px;
  padding:40px;color:var(--gris);font-size:14px}
.giro{width:20px;height:20px;border:3px solid var(--linea);border-top-color:var(--marca);
  border-radius:50%;animation:g .8s linear infinite}
@keyframes g{to{transform:rotate(360deg)}}
.oculto{display:none}
.tag-fl{display:inline-block;font-size:10.5px;font-weight:700;border-radius:999px;padding:1px 8px;white-space:nowrap}
.tag-fl.VENCIDO{background:#FEE2E2;color:#991B1B}.tag-fl.PROXIMO{background:#FEF3C7;color:#92400E}
.tag-fl.AL_DIA{background:#DCFCE7;color:#166534}.tag-fl.SIN_REGISTRO{background:#F3F4F6;color:#4B5563}
.fl-cab{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap}
.fl-cab .b{width:auto;margin:0}
.fl-botones{display:flex;gap:6px;flex-wrap:wrap}
.fl-plan{display:flex;justify-content:space-between;align-items:center;gap:8px;border-top:1px solid var(--linea);padding:7px 0;cursor:pointer}
.fl-plan:hover{background:#F9FAFB}
.fl-plan>div:first-child{min-width:0}
.tb-barra{position:relative;height:12px;background:var(--mute);border-radius:99px;margin:14px 0 6px}
.tb-barra .lleno{position:absolute;left:0;top:0;bottom:0;border-radius:99px;background:#2563EB}
.tb-barra .proy{position:absolute;left:0;top:0;bottom:0;border-radius:99px;background:repeating-linear-gradient(45deg,#BFDBFE 0 4px,#DBEAFE 4px 8px)}
.tb-barra .meta{position:absolute;top:-5px;bottom:-5px;width:2px;background:#111827}
.tb-venc{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--linea);padding:9px 0}
.tb-venc>div:first-child{min-width:0}
.tb-wa{display:inline-flex;align-items:center;gap:5px;background:#16A34A;color:#fff;border-radius:9px;padding:7px 11px;font-size:12.5px;font-weight:700;text-decoration:none;white-space:nowrap;flex:0 0 auto}
.tb-meses{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;align-items:end;height:110px;margin-top:10px}
.tb-meses .col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:3px;min-width:0}
.tb-meses .bar{width:70%;max-width:34px;border-radius:4px 4px 0 0;background:#2563EB;min-height:2px}
.tb-meses .bar.hist{background:#93C5FD}
.met-fila{display:grid;grid-template-columns:1fr 130px auto;gap:8px;align-items:center;border-top:1px solid var(--linea);padding:8px 0}
.met-fila input{margin:0}
@media(max-width:600px){.met-fila{grid-template-columns:1fr 110px}.met-fila .met-ver{grid-column:1/-1}}
.flujo-op{display:flex;gap:6px;align-items:stretch;margin-bottom:10px}
.flujo-op .paso{flex:1;border:1px solid var(--linea);border-radius:10px;padding:6px 10px;background:#fff;text-align:left;cursor:pointer;min-width:0;display:flex;flex-direction:column;font:inherit;color:inherit}
.flujo-op .paso .t10{text-transform:uppercase;color:var(--gris);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.flujo-op .paso b{font-size:18px}
.flujo-op .paso.on{border:2px solid var(--marca);background:var(--suave)}
.flujo-op .paso:disabled{cursor:default;opacity:.7}
.flujo-op .flecha{align-self:center;color:var(--gris)}
@media(max-width:600px){.flujo-op{gap:4px}.flujo-op .flecha{display:none}.flujo-op .paso{padding:5px 6px}.flujo-op .paso b{font-size:15px}.flujo-op .paso .t10{font-size:9px}}
.tabla-op{width:100%;border-collapse:collapse;font-size:13px}
.tabla-op th{font-size:10px;text-transform:uppercase;color:var(--gris);text-align:left;padding:5px 6px;border-bottom:1px solid var(--linea);font-weight:700}
.tabla-op td{padding:7px 6px;border-bottom:1px solid var(--linea);vertical-align:middle}
.tabla-op .der{text-align:right}
.tabla-op tr.fila-op{cursor:pointer}
.tabla-op tr.fila-op:hover td{background:#FAFAFA}
.tabla-op tr.marcada td{background:#FFF7F5}
.tabla-op tr.abierta td{background:var(--suave)}
.tabla-op tr.detalle td{background:#FAFAFA;padding:6px 12px}
.tabla-op input[type=checkbox]{width:18px;height:18px;margin:0}
.tag-op{display:inline-block;font-size:10.5px;font-weight:700;border-radius:99px;padding:1px 8px;white-space:nowrap}
.tag-op.ok{background:#DCFCE7;color:#166534}.tag-op.av{background:#FEF3C7;color:#92400E}.tag-op.mal{background:#FEE2E2;color:#991B1B}
.tag-op.az{background:#DBEAFE;color:#1E40AF}.tag-op.gr{background:#F3F4F6;color:#4B5563}
/* Transporte: las rutas del día como tablero, una raya por parada */
.barra-par{display:flex;gap:2px;height:8px;margin:8px 0 5px}
.barra-par span{flex:1;border-radius:2px;min-width:4px}
.barra-par span:first-child{border-radius:99px 2px 2px 99px}.barra-par span:last-child{border-radius:2px 99px 99px 2px}
.barra-par span:only-child{border-radius:99px}
.rutas-op{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin-bottom:12px}
.ruta-op{background:#fff;border:1px solid var(--linea);border-radius:12px;padding:10px 12px;cursor:pointer}
.ruta-op.on{border:2px solid var(--marca);padding:9px 11px}
.ruta-op.cerrada{opacity:.65}
.lista-rutas .ruta-op{margin-bottom:6px;padding:8px 10px}
.lista-rutas .ruta-op.on{padding:7px 9px;background:#FFFBFA}
.lista-rutas .ruta-op.cerrada.on{opacity:1}
.dos-po{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:12px;align-items:start;margin-bottom:10px}
.dos-po .cargados-po{position:sticky;top:10px;max-height:calc(100vh - 40px);overflow:auto}
@media (max-width:899px){ .dos-po{grid-template-columns:1fr} .dos-po .cargados-po{position:static;max-height:none} }
.pest-ficha{display:flex;gap:2px;border-bottom:1px solid var(--linea);margin:10px 0;overflow-x:auto}
.pest-ficha button{background:none;border:0;border-bottom:2px solid transparent;padding:7px 10px;font-weight:700;font-size:12.5px;color:var(--gris);cursor:pointer;white-space:nowrap}
.pest-ficha button.on{color:var(--marca);border-bottom-color:var(--marca)}
.avisos-cli{background:#FFFBEB;border:1px solid #FDE68A;border-radius:9px;padding:7px 10px;margin-top:10px;font-size:12px}
.avisos-cli div{padding:2px 0}
.mini-barra{height:6px;background:var(--mute);border-radius:99px;overflow:hidden}
.mini-barra div{height:100%;background:var(--marca);border-radius:99px}
.meses-cli{display:flex;gap:6px;align-items:flex-end;height:96px;margin-top:6px}
.meses-cli > div{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:3px}
.meses-cli .b{width:100%;max-width:34px;background:var(--marca);border-radius:4px 4px 0 0;opacity:.85}
.meses-cli span{font-size:10px;color:var(--gris)}
.mesa-cli{display:grid;grid-template-columns:340px minmax(0,1fr);gap:12px;align-items:start}
.lista-cli{background:#fff;border:1px solid var(--linea);border-radius:12px;padding:6px;margin-bottom:10px}
.mesa-cli .lista-cli{max-height:calc(100vh - 150px);overflow:auto;position:sticky;top:10px;margin-bottom:0}
.mesa-cli #cli_ficha > .card:first-child{border:2px solid var(--marca)}
.mesa-ped{display:grid;grid-template-columns:340px minmax(0,1fr);gap:12px;align-items:start}
.lista-ped{background:#fff;border:1px solid var(--linea);border-radius:12px;padding:6px;margin-bottom:10px}
.mesa-ped .lista-ped{max-height:calc(100vh - 150px);overflow:auto;position:sticky;top:10px;margin-bottom:0}
.item-ped{border-radius:9px;padding:8px 10px;border-bottom:1px solid var(--linea);cursor:pointer}
.item-ped:last-child{border-bottom:0}
.item-ped.on{background:var(--suave);outline:2px solid var(--marca)}
.item-ped .nombre{font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis}
.punto{display:inline-block;width:8px;height:8px;border-radius:99px;margin-right:5px;vertical-align:middle}
.panel-ped > .card:first-child{border:2px solid var(--marca)}
.mesa-rutas{display:grid;grid-template-columns:330px minmax(0,1fr);gap:12px;align-items:start}
.mesa-rutas .lista-rutas{background:#fff;border:1px solid var(--linea);border-radius:12px;padding:8px;
  max-height:calc(100vh - 150px);overflow:auto;position:sticky;top:10px}
.grp-rutas{font-weight:700;font-size:12.5px;margin:4px 2px 6px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.grp-rutas.plegable{border-top:1px solid var(--linea);padding-top:10px;margin-top:10px;cursor:pointer}
.grp-rutas .n{background:var(--marca);color:#fff;border-radius:99px;font-size:10px;padding:0 7px}
.grp-rutas .n.gr{background:#6B7280}
.dia-rutas{font-size:10px;font-weight:700;color:var(--gris);text-transform:uppercase;margin:8px 2px 4px}
.acciones-ruta{display:flex;gap:6px;flex-wrap:wrap}
.acciones-ruta .b{width:auto}
/* Inicio: cifras en cajitas por franja, y el camino del pedido */
.franja{font-size:10px;font-weight:800;letter-spacing:.04em;color:var(--gris);text-transform:uppercase;margin:0 0 8px}
.cajas{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}
.caja-c{border:1px solid var(--linea);border-radius:10px;padding:7px 10px;min-width:0}
.caja-c .e{font-size:10px;font-weight:700;color:var(--gris);text-transform:uppercase}
.caja-c .v{font-size:18px;font-weight:700;overflow-wrap:anywhere}
.cajas.cuatro{grid-template-columns:repeat(4,minmax(0,1fr))}.cajas.tres{grid-template-columns:repeat(3,minmax(0,1fr))}
.cajas.dos{grid-template-columns:repeat(2,minmax(0,1fr))}
.cajas.cinco,.camino-op.cinco{grid-template-columns:repeat(5,minmax(0,1fr))}
.caja-c .s{font-size:10.5px;color:var(--gris)}
.dias-fac{display:flex;align-items:flex-end;gap:2px;height:110px;border-bottom:1px solid var(--linea);margin-top:6px}
.dias-fac span{flex:1;background:#94A3B8;border-radius:3px 3px 0 0;min-height:1px}
.dias-fac span.hoy{background:var(--marca)}
.dos-res{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-bottom:12px}
.tres-res{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:12px;align-items:stretch}
.camino-op{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.paso-op{border:1px solid var(--linea);border-radius:10px;padding:7px 9px;min-width:0}
.paso-op .e{font-size:10px;font-weight:700;color:var(--gris);text-transform:uppercase}
.paso-op .v{font-size:20px;font-weight:700}
.paso-op .s{font-size:10.5px;color:var(--gris)}
.paso-op.cuello{background:#FFF7ED;border-color:#FDBA74}
.paso-op.cuello .e,.paso-op.cuello .v,.paso-op.cuello .s{color:#9A3412}
.pend-d{display:flex;gap:10px;align-items:center;border-top:1px solid var(--linea);padding:7px 0}
.pend-d:first-of-type{border-top:0}
.pend-d .ico{width:28px;height:28px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
@media(max-width:900px){ .dos-res,.tres-res{grid-template-columns:minmax(0,1fr)} .camino-op{grid-template-columns:repeat(4,minmax(0,1fr))} }
@media(max-width:700px){ .cajas.cinco,.camino-op.cinco{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media(max-width:500px){ .camino-op,.cajas.cuatro,.cajas.tres{grid-template-columns:repeat(2,minmax(0,1fr))} }
/* Cobranza: la lista y la cuenta del cliente lado a lado */
.mesa-cob{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.45fr);gap:12px;align-items:start}
.mesa-cob .panel-cob > .card:first-child{border:2px solid var(--marca)}
.mesa-cob .cta .cta-nombre{font-size:13.5px}
.cta.on{background:var(--suave);border-radius:10px}
.pista-cob{background:#FFFBEB;border:1px solid #FDE68A;border-radius:9px;padding:8px 10px;margin-top:8px}
.pista-cob table{width:100%;margin:4px 0 2px}.pista-cob th{font-size:10px;text-align:left;color:var(--gris)}
.pista-cob td{padding:2px 4px}
/* Ventas → Análisis de clientes: el ranking y la ficha lado a lado */
.mesa-ana{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:12px;align-items:start}
.mesa-ana .panel-ana{border:2px solid var(--marca)}
.tabla-ana{width:100%;border-collapse:collapse;font-size:12.5px}
.tabla-ana th{font-size:10px;text-transform:uppercase;color:var(--gris);text-align:left;padding:6px;border-bottom:1px solid var(--linea)}
.tabla-ana td{padding:6px;border-bottom:1px solid var(--mute);vertical-align:middle}
.tabla-ana .der{text-align:right;white-space:nowrap}
.tabla-ana .est{white-space:nowrap}
.tabla-ana tr.on td{background:var(--suave)}
.tabla-ana tr.on td:first-child{box-shadow:inset 3px 0 0 var(--marca)}
.prod-ana{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid var(--mute);padding:5px 0;font-size:12.5px}
@media(max-width:1100px){ .mesa-ana{grid-template-columns:minmax(0,1fr)} }
/* Comisiones: lo cobrado a la izquierda, el corte a la derecha */
.mesa-com{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:12px;align-items:start}
.mesa-com .panel-com{border:2px solid var(--marca)}
@media(max-width:900px){ .mesa-com{grid-template-columns:minmax(0,1fr)} }
/* Degustaciones: el calendario con cada una en su día */
.dos-cal{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:12px;align-items:start}
@media(max-width:900px){ .dos-cal{grid-template-columns:minmax(0,1fr)} }
.cal-deg{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-top:8px}
.cal-deg .h{font-size:10px;font-weight:700;color:var(--gris);text-align:center}
.cal-deg .d{border:1px solid var(--linea);border-radius:8px;min-height:70px;padding:3px 4px;font-size:10.5px;min-width:0}
.cal-deg .d.hoy{border:2px solid var(--marca)}
.cal-deg .ev{display:block;border-radius:5px;padding:1px 4px;margin-top:3px;font-weight:600;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
.cal-deg .ev.av{background:#FEF3C7;color:#92400E}.cal-deg .ev.ok{background:#DCFCE7;color:#166534}
.cal-deg .ev.az{background:#DBEAFE;color:#1E40AF}.cal-deg .ev.mal{background:#FEE2E2;color:#991B1B}.cal-deg .ev.gr{background:#F3F4F6;color:#4B5563}
@media(max-width:600px){ .cal-deg .d{min-height:46px} .cal-deg .ev{font-size:0;height:6px;padding:0} }
.dos-comb{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:12px;align-items:start}
@media(max-width:900px){ .dos-comb{grid-template-columns:minmax(0,1fr)} }
.caja-desmontar{border:1px solid #FCA5A5;background:#FEF2F2;border-radius:10px;padding:10px 12px;margin-top:8px}
.semana-op{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.semana-op .dia{border:1px solid var(--linea);border-radius:10px;padding:7px 8px;background:#fff;min-width:0}
.semana-op .dia.hoy{border:2px solid var(--marca)}
.semana-op .barra{height:7px;background:var(--mute);border-radius:99px;overflow:hidden;margin:5px 0 2px}
.semana-op .barra div{height:100%;border-radius:99px}
@media(max-width:700px){.semana-op{grid-template-columns:repeat(3,minmax(0,1fr))}}
.accion-op{position:sticky;bottom:8px;background:#1A1D1C;color:#fff;border-radius:10px;padding:9px 12px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:8px;z-index:5}
.accion-op .chip{background:#333;color:#fff;border-color:#555}
.accion-op .chip.sug{background:#fff;color:#111}
.accion-op .chip.mal{border-color:#F87171}
.dos-op{display:grid;grid-template-columns:330px minmax(0,1fr);gap:10px;align-items:start}
.dos-op.fac{grid-template-columns:minmax(0,1fr) 400px}
.dos-op .lista-op{max-height:calc(100vh - 230px);overflow-y:auto;padding-right:4px}
.dos-op .panel-op{position:sticky;top:10px;max-height:calc(100vh - 20px);overflow-y:auto}
.ped-op{border:1px solid var(--linea);border-radius:10px;padding:8px 10px;margin-bottom:6px;background:#fff;cursor:pointer}
.ped-op.on{border:2px solid var(--marca);background:var(--suave)}
.ped-op .barra{height:6px;background:var(--mute);border-radius:99px;overflow:hidden;margin:5px 0 2px}
.ped-op .barra div{height:100%;background:#16A34A;border-radius:99px}
.peso-op{border:2px solid var(--linea);border-radius:8px;padding:6px 8px;font-size:17px;font-weight:700;width:110px;text-align:right;margin:0}
.peso-op.ok{border-color:#16A34A}.peso-op.desvio{border-color:#B45309}
.lote-op{border:1px solid var(--linea);border-radius:8px;padding:5px 8px;width:110px;font-size:12.5px;margin:0}
.renglon-movil .peso-op{width:auto;flex:1;min-width:0;font-size:26px;padding:10px}
@media(max-width:900px){.dos-op,.dos-op.fac{grid-template-columns:1fr}.dos-op .lista-op{max-height:none}.dos-op .panel-op{position:static;max-height:none}
  .dos-op.pes.con-pedido .lista-op{display:none}.dos-op.pes:not(.con-pedido) .panel-op{display:none}}

/* Producción: tablet y teléfono, campos grandes; en el teléfono las
   tablas pasan a fichas con la etiqueta de cada dato */
.pr-dos{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:12px;align-items:start}
.pr-panel{border:2px solid var(--marca)}
.pr-tabla{width:100%;border-collapse:collapse;font-size:13px}
.pr-tabla th{font-size:10px;text-transform:uppercase;color:var(--gris);text-align:left;padding:6px;border-bottom:1px solid var(--linea)}
.pr-tabla td{padding:7px 6px;border-bottom:1px solid var(--mute);vertical-align:middle}
.pr-tabla .der{text-align:right;white-space:nowrap}
.pr-tabla tr.pr-fam td{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--gris);background:var(--mute);padding:5px 6px}
@media(max-width:700px){ .pr-tabla.fichas tr.pr-fam{border:0;padding:6px 0 2px;margin:4px 0 2px} .pr-tabla.fichas tr.pr-fam td{background:none;padding:0} }
.pr-tabla .est,.pr-atender .est{white-space:nowrap}
.pr-tabla tr.clic{cursor:pointer}
.pr-tabla tr.on td{background:var(--suave)}
.pr-num{font-size:16px;font-weight:700;text-align:right;padding:9px 10px;max-width:120px}
.pr-renglon{display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end;border:1px solid var(--linea);border-radius:10px;padding:8px 10px;margin-bottom:8px}
.pr-renglon label{margin-top:0}
.pr-tanda{border:1px solid var(--linea);border-left:4px solid #D97706;border-radius:10px;padding:10px;margin-bottom:8px}
.pr-atender{display:flex;gap:8px;align-items:flex-start;padding:6px 0;border-bottom:1px solid var(--mute);font-size:13px}
.pr-paso{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--marca);color:#fff;font-weight:800;font-size:13px;margin-right:6px}
@media(max-width:900px){ .pr-dos{grid-template-columns:minmax(0,1fr)} }
@media(max-width:700px){
  .pr-tabla.fichas thead{display:none}
  .pr-tabla.fichas tr{display:block;border:1px solid var(--linea);border-radius:10px;padding:8px 10px;margin-bottom:8px}
  .pr-tabla.fichas td{display:flex;justify-content:space-between;align-items:center;gap:8px;border:0;padding:3px 0;text-align:left}
  .pr-tabla.fichas td:empty{display:none}
  .pr-tabla.fichas td[data-e]::before{content:attr(data-e);color:var(--gris);font-size:11px;font-weight:600;text-transform:uppercase}
  .pr-num{max-width:none;width:120px}
}
/* Buscador de Producción: la lista se abre debajo del campo */
.pr-busca{position:relative}
.pr-busca-lista{display:none;position:absolute;z-index:40;left:0;right:0;top:calc(100% + 2px);background:#fff;border:1px solid var(--linea);border-radius:10px;max-height:320px;overflow:auto;box-shadow:0 8px 24px rgba(0,0,0,.14)}
.pr-busca-lista button{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid #F0F1F0;padding:11px 12px;font-size:14px;font-weight:600;color:inherit;cursor:pointer}
.pr-busca-lista button:hover,.pr-busca-lista button:focus{background:#FFF7F6}
.pr-busca-lista button span{display:block;font-size:11.5px;font-weight:400;color:var(--gris);margin-top:1px}
.pr-busca-nada{padding:11px 12px;font-size:13px;color:var(--gris)}
/* Despiece: la lista angosta y el despiece abierto ancho, para la tablet */
.pr-desp{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:12px;align-items:start}
.pr-pesar{margin-top:12px;border:1px solid var(--linea);border-radius:12px;padding:12px;background:var(--suave)}
.pr-cortes{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}
.pr-cortes button{background:#fff;border:2px solid var(--linea);border-radius:12px;padding:12px 10px;font-size:15px;font-weight:700;text-align:left;cursor:pointer;color:inherit}
.pr-cortes button span{display:block;font-size:11.5px;font-weight:500;color:var(--gris);margin-top:2px}
.pr-cortes button.on{border-color:var(--marca);background:#FFF7F6;box-shadow:0 0 0 2px var(--marca) inset}
.pr-romana{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-top:12px}
.pr-romana label{margin-top:0}
.pr-num.grande{font-size:30px;max-width:200px;padding:10px 12px}
.b.grande{width:auto;padding:16px 22px;font-size:16px}
.pr-ultimas{display:flex;flex-wrap:wrap;gap:6px}
.pr-ultimas span{border:1px solid var(--linea);border-radius:999px;padding:4px 6px 4px 11px;font-size:12.5px;background:#fff;display:inline-flex;align-items:center;gap:4px}
.pr-ultimas i{color:var(--gris);font-style:normal;font-size:11px}
.pr-ultimas button{border:0;background:var(--mute);border-radius:50%;width:24px;height:24px;cursor:pointer;font-size:11px;color:inherit}
@media (max-width:700px){.pr-desp{display:block}.pr-num.grande{max-width:none;width:100%}.pr-romana>div{flex:1 1 140px}}
.pr-tanda .barra{height:8px;background:var(--mute);border-radius:99px;overflow:hidden}
.pr-tanda .barra i{display:block;height:100%;background:var(--marca)}
/* Planta eléctrica */
.barra-gen{height:7px;background:var(--mute);border-radius:99px;overflow:hidden;margin-bottom:4px;min-width:100px}
.barra-gen i{display:block;height:100%}
.check-gen{display:flex;gap:8px;align-items:center;text-transform:none;font-weight:600;font-size:14px;margin:0;padding:7px 0;border-bottom:1px solid var(--mute);color:inherit;letter-spacing:0}
.check-gen input{width:20px;height:20px;margin:0;flex:0 0 auto}
