/* =====================================================================
   Atelier — sistema visual
   Monocromo (negro / blanco / grises). El color solo aparece para
   errores y acciones destructivas. Móvil primero en lo que importa.
   ===================================================================== */
:root{
  --fondo:#f7f7f7; --papel:#ffffff; --tinta:#0a0a0a; --tinta-2:#262626; --suave:#6b6b6b; --tenue:#a3a3a3;
  --linea:#e5e5e5; --linea-2:#d4d4d4; --hover:#f4f4f4; --relleno:#f1f1f1;
  --acento:#0a0a0a; --acento-2:#262626; --azul:#2563eb; --azul-2:#1d4ed8; --azul-f:#eff4ff;
  --ok:#0a0a0a; --ok-f:#f1f1f1; --mal:#b42318; --mal-f:#fdf3f2; --aviso:#404040; --aviso-f:#f4f4f4; --info-f:#f1f1f1;
  --radio:8px; --radio-s:6px; --sombra:none; --sombra-flota:0 12px 32px rgba(0,0,0,.12);
  --fuente:-apple-system,BlinkMacSystemFont,"Segoe UI Variable Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;
  --alto-barra:56px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:14px/1.55 var(--fuente);background:var(--fondo);color:var(--tinta);-webkit-font-smoothing:antialiased;font-feature-settings:"tnum" 1,"cv11" 1}
a{color:var(--tinta);text-decoration-color:var(--linea-2);text-underline-offset:2px}
a:hover{text-decoration-color:var(--tinta)}
code{font-family:var(--mono);font-size:.86em;background:var(--relleno);padding:1px 5px;border-radius:4px}
h1{font-size:1.5rem;margin:0 0 .15rem;font-weight:600;letter-spacing:-.02em;line-height:1.25}
h1 em{font-style:normal;color:var(--tinta)}
h2{font-size:.95rem;margin:0 0 .75rem;font-weight:600;letter-spacing:-.005em}
h2 small,h3 small{color:var(--suave);font-weight:400;margin-left:.35rem;font-size:.86em}
h3{font-size:.9rem;margin:1.1rem 0 .5rem;font-weight:600}
h4{font-size:.85rem;font-weight:600}
[hidden]{display:none!important}
::selection{background:#0a0a0a;color:#fff}

/* ------------------------------------------------------------ barra superior */
.barra{position:sticky;top:0;left:0;width:100%;box-sizing:border-box;z-index:30;display:flex;flex-wrap:wrap;align-items:center;column-gap:1.25rem;min-height:var(--alto-barra);padding:0 1.5rem;
  background:rgba(255,255,255,.92);backdrop-filter:saturate(180%) blur(10px);-webkit-backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid var(--linea);color:var(--tinta)}
.marca{font-weight:700;letter-spacing:.18em;font-size:.82rem;text-transform:uppercase;white-space:nowrap;display:flex;align-items:center;gap:.55rem;height:52px}
.marca::before{content:"";width:18px;height:18px;border-radius:4px;background:var(--tinta);display:inline-block}
.marca span{display:none}
/* escritorio: marca y herramientas arriba; secciones en pestañas debajo */
.barra nav{order:10;flex-basis:100%;display:flex;gap:.25rem;align-items:flex-end;overflow-x:auto;scrollbar-width:none;margin:0 -.6rem}
.barra nav::-webkit-scrollbar{display:none}
.barra nav a{color:var(--suave);text-decoration:none;padding:.55rem .6rem .65rem;font-size:.86rem;font-weight:500;white-space:nowrap;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s}
.barra nav a:hover{color:var(--tinta)}
.barra nav a.activo{color:var(--tinta);border-bottom-color:var(--tinta)}
.barra .trabajos{order:3}
.nav-sep{width:1px;height:16px;background:var(--linea);margin:0 .4rem .7rem;flex:none;align-self:flex-end}
.barra-derecha{margin-left:auto;display:flex;align-items:center;gap:.6rem}
.selector-tienda{display:flex;align-items:center;gap:.4rem;font-size:.82rem}
.selector-tienda span{color:var(--suave)}
.selector-tienda select{width:auto;background:var(--papel);color:var(--tinta);border:1px solid var(--linea);border-radius:var(--radio-s);padding:.34rem 1.8rem .34rem .6rem;font-size:.84rem;font-weight:500}
.usuario-menu{display:flex;align-items:center;gap:.5rem;font-size:.82rem;color:var(--suave);padding-left:.6rem;border-left:1px solid var(--linea)}
.usuario-menu a{color:var(--tinta);text-decoration:none;font-weight:500}
.usuario-menu a:hover{text-decoration:underline}
.menu-boton{display:none;margin-left:auto;width:40px;height:40px;border:1px solid var(--linea);border-radius:var(--radio-s);background:var(--papel);cursor:pointer;align-items:center;justify-content:center;padding:0}
.menu-boton span,.menu-boton span::before,.menu-boton span::after{display:block;width:16px;height:1.5px;background:var(--tinta);position:relative;transition:transform .2s,background .2s}
.menu-boton span::before,.menu-boton span::after{content:"";position:absolute;left:0}
.menu-boton span::before{top:-5px} .menu-boton span::after{top:5px}
.barra.abierta .menu-boton span{background:transparent}
.barra.abierta .menu-boton span::before{transform:translateY(5px) rotate(45deg)}
.barra.abierta .menu-boton span::after{transform:translateY(-5px) rotate(-45deg)}
.menu-panel{display:contents}

.aviso-global{background:var(--tinta);color:#fff;padding:.55rem 1.5rem;font-size:.84rem}
.aviso-global a{color:#fff}
.aviso-credito{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.6rem 1rem;background:var(--mal-f);color:var(--mal);border-bottom:1px solid var(--mal);padding:.7rem 1.5rem;font-size:.88rem}
.aviso-credito[hidden]{display:none}
.aviso-credito b{color:var(--mal)}
.aviso-credito .acciones{display:flex;gap:.5rem;flex-wrap:wrap}
.aviso-global b{font-weight:600}

/* ------------------------------------------------------------ estructura */
main{max-width:1320px;margin:0 auto;padding:1.75rem 1.5rem 3rem}
.cabecera{margin-bottom:1.4rem}
.sub{color:var(--suave);margin:.2rem 0 0;font-size:.9rem}
.migas{color:var(--suave);font-size:.8rem;margin:0 0 .5rem;text-transform:capitalize}
.migas a{color:var(--suave);text-decoration:none}
.migas a:hover{color:var(--tinta)}
.fila-entre{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}
.acciones{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center}
.acciones.abajo{margin-top:1.1rem;padding-top:1rem;border-top:1px solid var(--linea)}
.acciones.derecha{justify-content:flex-end}
.rejilla-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));gap:1rem;margin-bottom:1rem}
.tarjeta{background:var(--papel);border:1px solid var(--linea);border-radius:var(--radio);padding:1.25rem;margin-bottom:1rem;min-width:0}
.rejilla-2 .tarjeta{margin-bottom:0}
.tarjeta.destacada{border-color:var(--tinta)}
.ayuda{color:var(--suave);font-size:.84rem;line-height:1.55}
.aviso{background:var(--papel);border:1px solid var(--linea);border-left:3px solid var(--tinta);color:var(--tinta);padding:.7rem .9rem;border-radius:var(--radio-s);margin-bottom:1rem;font-size:.88rem;align-items:center}
.ok-msg{background:var(--relleno);color:var(--tinta);padding:.5rem .8rem;border-radius:var(--radio-s);display:inline-block;font-size:.88rem}
.ok-txt{color:var(--tinta)} .mal-txt,.peligro-txt{color:var(--mal)}
.dim{font-size:.76rem;color:var(--suave)}
.vacio{text-align:center;padding:4rem 1rem;color:var(--suave);border:1px dashed var(--linea-2);border-radius:var(--radio);background:var(--papel)}

/* ------------------------------------------------------------ botones */
.boton{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:1px solid var(--linea-2);background:var(--papel);color:var(--tinta);
  padding:0 .9rem;height:36px;border-radius:var(--radio-s);font:inherit;font-size:.86rem;font-weight:500;cursor:pointer;text-decoration:none;white-space:nowrap;
  transition:background .15s,border-color .15s,color .15s,transform .08s;position:relative;overflow:hidden}
.boton:hover{background:var(--hover);border-color:var(--tenue)}
.boton:active{transform:scale(.98)}
.boton:focus-visible{outline:2px solid var(--tinta);outline-offset:2px}
.boton.primario{background:var(--tinta);border-color:var(--tinta);color:#fff}
.boton.primario:hover{background:var(--tinta-2)}
.boton.peligro{color:var(--mal);border-color:#f0c7c2}
.boton.peligro:hover{background:var(--mal-f)}
.boton.peligro-lleno{background:var(--mal);border-color:var(--mal);color:#fff}
.boton.peque{height:30px;padding:0 .65rem;font-size:.8rem}
.boton.ancho{width:100%}
.boton:disabled{opacity:.5;cursor:not-allowed}
label.boton{cursor:pointer}
.boton.cargando{cursor:progress;opacity:1}
.boton.cargando::before{content:"";width:.85em;height:.85em;border:1.5px solid currentColor;border-right-color:transparent;border-radius:50%;animation:giro .7s linear infinite;flex:none}
.boton.cargando::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:var(--pct,0%);background:currentColor;opacity:.4;transition:width .4s}
.boton.hecho{background:var(--tinta)!important;border-color:var(--tinta)!important;color:#fff!important}
.boton.hecho::before{content:"✓";font-weight:700}
.boton.fallo{animation:temblor .4s ease;border-color:var(--mal)!important;color:var(--mal)!important}
.boton.primario.fallo{background:var(--mal)!important;color:#fff!important}

/* ------------------------------------------------------------ formularios */
textarea,input:not([type=checkbox]):not([type=radio]):not([type=file]),select{width:100%;font:inherit;font-size:.9rem;padding:.5rem .7rem;border:1px solid var(--linea-2);border-radius:var(--radio-s);background:var(--papel);color:var(--tinta);transition:border-color .15s,box-shadow .15s}
select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%230a0a0a' fill='none' stroke-width='1.3'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .65rem center;padding-right:1.8rem}
textarea{resize:vertical;line-height:1.55}
textarea:focus,input:focus,select:focus{outline:none;border-color:var(--tinta);box-shadow:0 0 0 3px rgba(10,10,10,.08)}
input[type=checkbox],input[type=radio]{accent-color:var(--tinta);width:16px;height:16px}
input[type=file]{font-size:.84rem}
.campo{display:block;margin-bottom:.9rem}
.campo>span{display:flex;justify-content:space-between;gap:.5rem;font-size:.8rem;font-weight:500;margin-bottom:.3rem;color:var(--tinta-2)}
.campo>span i{font-weight:400;color:var(--suave);margin-right:auto}
.campo.corto input{max-width:140px}
.check{display:flex;gap:.55rem;align-items:flex-start;margin:.5rem 0 .75rem;font-size:.88rem}
.check input{margin-top:.2rem;flex:none}
.check.en-linea{margin:0;white-space:nowrap;align-items:center}
.check.en-linea input{margin-top:0}
.dos{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.dos.tres{grid-template-columns:1fr 1fr 1fr}
.cuenta{font-weight:500;color:var(--suave);font-size:.76rem}
.cuenta.mal{color:var(--mal);font-weight:600}
.propuesta{font-style:normal;background:var(--relleno);color:var(--tinta);padding:0 .4rem;border-radius:4px;font-size:.72rem;margin-right:auto}
.validacion{list-style:none;padding:0;margin:0 0 .8rem}
.validacion li{border-left:2px solid var(--mal);background:var(--mal-f);color:#7a1a12;padding:.45rem .7rem;border-radius:0 var(--radio-s) var(--radio-s) 0;margin-bottom:.3rem;font-size:.84rem}
.filtros{display:flex;gap:.5rem;margin-bottom:1.25rem;max-width:760px;flex-wrap:wrap}
.filtros input{flex:2;min-width:180px} .filtros select{flex:1;min-width:150px;width:auto}
.filtros.ancho{max-width:980px;align-items:center}
.eleccion{display:flex;gap:.5rem;flex-wrap:wrap;margin:.3rem 0 .9rem}
.eleccion label{display:flex;align-items:center;gap:.45rem;border:1px solid var(--linea-2);border-radius:var(--radio-s);padding:.5rem .85rem;cursor:pointer;font-size:.88rem;transition:border-color .15s,background .15s}
.eleccion label:has(input:checked){border-color:var(--tinta);background:var(--relleno)}
.eleccion input{margin:0}

/* ------------------------------------------------------------ tablas y listas */
.tabla{width:100%;border-collapse:collapse;font-size:.86rem}
.tabla th{text-align:left;font-weight:500;color:var(--suave);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;padding:.55rem .6rem;border-bottom:1px solid var(--linea);position:sticky;top:0;background:var(--papel);white-space:nowrap}
.tabla td{padding:.6rem .6rem;border-bottom:1px solid var(--linea);vertical-align:top}
.tabla tr:last-child td{border-bottom:0}
.tabla tr:hover td{background:#fcfcfc}
.tabla td.mal{color:var(--mal);font-weight:600}
.fila-activa td{background:var(--relleno)!important}
.scroll{overflow:auto;max-height:320px}
.scroll.alto{max-height:520px} .scroll.muy-alto{max-height:640px}
.tareas{list-style:none;padding:0;margin:0}
.tareas li{border-bottom:1px solid var(--linea)}
.tareas li:last-child{border-bottom:0}
.tareas a{display:flex;justify-content:flex-start;align-items:baseline;gap:.6rem;padding:.65rem 0;color:var(--tinta);text-decoration:none;font-size:.9rem}
.tareas a:hover{color:var(--suave)}
.tareas a>b:first-child{min-width:1.6rem;font-variant-numeric:tabular-nums}
.pasos ol{padding-left:1.2rem;margin:.2rem 0}
.pasos li{margin-bottom:.4rem}
.log{background:var(--tinta);color:#e5e5e5;padding:.9rem;border-radius:var(--radio-s);max-height:340px;overflow:auto;font:12px/1.6 var(--mono);white-space:pre-wrap}

/* ------------------------------------------------------------ etiquetas */
.pildora,.etq,.chip{display:inline-flex;align-items:center;gap:.3rem;font-size:.74rem;font-weight:500;padding:.14rem .5rem;border-radius:4px;background:var(--relleno);color:var(--tinta-2);border:1px solid transparent;line-height:1.5}
.pildora.ok,.chip.ok,.etq.ok,.etq.hueco{background:var(--tinta);color:#fff}
.pildora.mal,.chip.mal{background:var(--mal-f);color:var(--mal)}
.etq.dfs,.etq.rango,.etq.cambiar_cara,.etq.cara_y_fondo,.etq.cambiar_fondo,.etq.recortar_cara,.etq.reescalar_ia{background:var(--papel);border-color:var(--linea-2);color:var(--tinta-2)}
.etq.rehacer_ia{background:var(--mal-f);color:var(--mal)}
.etiquetas{display:flex;flex-wrap:wrap;gap:.35rem}
.chips{display:flex;flex-wrap:wrap;gap:.35rem;margin:.5rem 0}
.etq-dato{font-variant-numeric:tabular-nums;color:var(--suave);font-weight:400}
.etq.hueco .etq-dato{color:rgba(255,255,255,.7)}
.etq.clic{cursor:pointer;padding:.3rem .65rem;font-size:.8rem;border:1px solid var(--linea-2);background:var(--papel);color:var(--tinta);transition:border-color .15s,background .15s}
.etq.clic:hover{border-color:var(--tinta)}
.etq.clic.hueco{background:var(--tinta);color:#fff;border-color:var(--tinta)}
a.clic{cursor:pointer}
.resultados{display:flex;flex-wrap:wrap;gap:.4rem;margin:.6rem 0}
.resultado{font-size:.8rem;padding:.25rem .6rem;border-radius:4px;text-decoration:none;background:var(--relleno);color:var(--tinta)}
.resultado.mal{background:var(--mal-f);color:var(--mal)}
.sube{color:var(--tinta);font-weight:600} .baja{color:var(--mal)}
.alerta{color:var(--tinta);font-weight:600}
.motivos{font-size:.74rem;color:var(--suave)}
td.motivos{font-size:.82rem}
.meta{font-size:.76rem;color:var(--suave)}

/* ------------------------------------------------------------ progreso */
.progreso{height:4px;background:var(--relleno);border-radius:99px;overflow:hidden;margin:.45rem 0}
.progreso div{height:100%;width:3%;background:var(--tinta);transition:width .4s}
.barra-progreso{position:relative;height:28px;background:var(--relleno);border-radius:var(--radio-s);overflow:hidden;margin:.7rem 0}
.barra-progreso div{height:100%;width:0;background:var(--tinta);transition:width .3s}
.barra-progreso span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:600;mix-blend-mode:difference;color:#fff}
.op{position:relative;background:var(--relleno);border-radius:3px;height:18px;min-width:80px}
.op div{height:100%;background:var(--tenue);border-radius:3px}
.op span{position:absolute;left:6px;top:0;font-size:.72rem;line-height:18px;font-weight:600}
.carga{position:fixed;top:0;left:0;height:2px;width:0;background:var(--tinta);z-index:50;opacity:0;transition:opacity .3s}
.carga.activa{opacity:1;animation:carga 8s cubic-bezier(.1,.7,.3,1) forwards}
.carga.fin{width:100%!important;animation:none;transition:width .2s,opacity .35s .15s;opacity:0}

/* ------------------------------------------------------------ panel */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1px;margin-bottom:1rem;background:var(--linea);border:1px solid var(--linea);border-radius:var(--radio);overflow:hidden}
.kpi{background:var(--papel);padding:1.05rem 1.15rem;text-decoration:none;color:inherit;display:flex;flex-direction:column;gap:.2rem}
a.kpi:hover{background:var(--hover)}
.kpi-num{font-size:1.75rem;font-weight:600;line-height:1.1;letter-spacing:-.03em}
.kpi-num small{font-size:.85rem;font-weight:400;color:var(--suave)}
.kpi-txt{font-size:.8rem;color:var(--suave)}
.kpi.kpi-alerta .kpi-num{color:var(--mal)}
.barra-estado{display:flex;gap:2px;height:8px;border-radius:99px;overflow:hidden;background:var(--relleno);margin:.4rem 0 .7rem}
.barra-estado .seg{height:100%}
.seg.aprobado,.punto.aprobado{background:var(--tinta)}
.seg.pendiente,.punto.pendiente{background:var(--tenue)}
.seg.descartado,.punto.descartado{background:var(--linea-2)}
.leyenda{list-style:none;padding:0;margin:0 0 .6rem;display:flex;gap:1.1rem;flex-wrap:wrap;font-size:.84rem}
.leyenda li{display:flex;align-items:center;gap:.4rem}
.punto{width:8px;height:8px;border-radius:2px;display:inline-block}
.barras{display:flex;flex-direction:column;gap:.5rem}
.barra-fila{display:grid;grid-template-columns:minmax(110px,38%) 1fr 2.5rem;gap:.6rem;align-items:center;font-size:.84rem}
.barra-et{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.barra-et small{color:var(--suave)}
.barra-pista{height:6px;background:var(--relleno);border-radius:99px;overflow:hidden}
.barra-val{display:block;height:100%;background:var(--tinta);border-radius:99px;min-width:4px}
.barra-n{text-align:right;font-weight:600}

/* ------------------------------------------------------------ biblioteca */
.grupo-titulo{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--suave);border-bottom:1px solid var(--linea);padding-bottom:.5rem;margin:2rem 0 .5rem}
.ruta{text-transform:capitalize;color:var(--tinta);font-size:.9rem;font-weight:600;margin:1.2rem 0 .7rem}
.ruta span{color:var(--tenue);margin:0 .2rem}
.ruta small{color:var(--suave);font-weight:400;margin-left:.3rem}
.cuadricula{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:1rem}
.producto{background:var(--papel);border:1px solid var(--linea);border-radius:var(--radio);overflow:hidden;text-decoration:none;color:inherit;transition:border-color .15s}
.producto:hover{border-color:var(--tinta)}
.producto .foto{position:relative;aspect-ratio:4/5;background:var(--relleno)}
.producto img{width:100%;height:100%;object-fit:cover;display:block}
.producto .info{padding:.7rem .75rem .8rem}
.producto strong{display:block;font-size:.84rem;line-height:1.4;font-weight:500;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.estado{position:absolute;top:.5rem;left:.5rem;font-size:.68rem;padding:.12rem .45rem;border-radius:4px;background:var(--papel);color:var(--tinta);font-weight:600;letter-spacing:.02em;border:1px solid var(--linea)}
.estado.grande{position:static;font-size:.8rem;padding:.3rem .7rem}
.estado.pendiente{background:var(--papel);color:var(--tinta)}
.estado.aprobado{background:var(--tinta);color:#fff;border-color:var(--tinta)}
.estado.descartado{background:var(--relleno);color:var(--suave);text-decoration:line-through}
.estado.pop{animation:pop .45s ease}
.estado.cambiando{opacity:.7}
.estado.cambiando::before{content:"";display:inline-block;width:.7em;height:.7em;margin-right:.35em;border:1.5px solid currentColor;border-right-color:transparent;border-radius:50%;animation:giro .7s linear infinite;vertical-align:-1px}
.versiones{position:absolute;right:.5rem;bottom:.5rem;display:flex;gap:3px}
.version{font-size:.62rem;font-weight:700;padding:.08rem .35rem;border-radius:3px;background:rgba(255,255,255,.95);color:var(--suave);letter-spacing:.03em}
.version.aprobado{background:var(--tinta);color:#fff} .version.pendiente{color:var(--tinta)} .version.falta{opacity:.5;text-decoration:line-through}
.producto.sin-version .foto img{filter:grayscale(1);opacity:.5}
.exito{position:absolute;left:.5rem;bottom:.5rem;padding:.12rem .45rem;border-radius:4px;font-weight:700;font-size:.72rem;background:rgba(255,255,255,.95);color:var(--tinta);border:1px solid var(--linea)}
.exito.probar-primero{background:var(--tinta);color:#fff;border-color:var(--tinta)}
.exito.bien{background:#fff;color:var(--tinta)}
.exito.dudoso{background:#fff;color:var(--suave)}
.exito.grande{position:static;display:inline-flex;align-items:center;gap:.3rem;font-size:.8rem;padding:.3rem .7rem;text-decoration:none}
.exito.grande small{font-weight:400;opacity:.8}
.agente{display:block;font-size:.72rem;font-weight:500;margin:.3rem 0 .1rem}
.agente.para-ti{color:var(--mal)} .agente.ok{color:var(--tinta)} .agente.espera{color:var(--suave)}
.seleccionable{cursor:pointer;position:relative}
.seleccionable .sel{position:absolute;top:.6rem;right:.6rem;width:1.2rem;height:1.2rem}
.seleccionable:has(.sel:checked){outline:2px solid var(--tinta);outline-offset:-2px}
.seleccionable.ya{opacity:.55;cursor:default}

/* ------------------------------------------------------------ ficha de producto */
.titulo-producto{font-size:1.35rem;max-width:900px}
.producto-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:1rem;margin-bottom:1rem}
.producto-layout .tarjeta{margin-bottom:0}
.galeria{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem}
.galeria figure{margin:0;border:1px solid var(--linea);border-radius:var(--radio-s);overflow:hidden;background:var(--papel)}
.galeria figure.reescalar_ia,.galeria figure.cambiar_cara,.galeria figure.cara_y_fondo,.galeria figure.cambiar_fondo,.galeria figure.recortar_cara{border-color:var(--tenue);border-style:dashed}
.galeria figure.rehacer_ia{border-color:var(--mal)}
.galeria figure.descartar{opacity:.45}
.galeria img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block;background:var(--relleno)}
.galeria figcaption{padding:.5rem;display:flex;flex-direction:column;gap:.3rem}
.galeria select,.galeria .modelo-img{padding:.3rem 1.6rem .3rem .45rem;font-size:.78rem}
.subir{font-size:.74rem;color:var(--tinta);cursor:pointer;text-decoration:underline}
.subir input{display:none}
img.mini{width:56px;height:70px;object-fit:cover;border-radius:4px}
img.mini.redonda{width:32px;height:32px;border-radius:50%;vertical-align:middle}
.checklist{list-style:none;padding:0;margin:0}
.checklist li{display:flex;flex-direction:column;padding:.5rem .7rem;border-radius:var(--radio-s);margin-bottom:.3rem;font-size:.84rem;border:1px solid var(--linea)}
.checklist li.ok{background:var(--papel);color:var(--tinta)}
.checklist li.mal{background:var(--mal-f);color:#7a1a12;border-color:#f3d2ce}
.checklist li span{font-size:.78rem;opacity:.85}
.pestanas-mercado{display:flex;gap:0;margin:0 0 1rem;border-bottom:1px solid var(--linea);overflow-x:auto}
.pestana{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem .9rem;border-bottom:2px solid transparent;margin-bottom:-1px;text-decoration:none;color:var(--suave);font-size:.86rem;font-weight:500;white-space:nowrap}
.pestana:hover{color:var(--tinta)}
.pestana.activa{border-bottom-color:var(--tinta);color:var(--tinta)}
.pestana small{font-weight:500;font-size:.7rem;padding:.05rem .4rem;border-radius:3px;background:var(--relleno);color:var(--suave)}
.pestana small.aprobado{background:var(--tinta);color:#fff}
.pestana small.descartado{text-decoration:line-through}
.tarjeta.revision{border-left:3px solid var(--linea-2)}
.tarjeta.revision.rev-ok{border-left-color:var(--tinta)}
.tarjeta.revision.rev-ti{border-left-color:var(--mal)}
.cambio{margin:.6rem 0;font-size:.84rem}
.cambio .antes{background:var(--mal-f);color:#7a1a12;padding:.35rem .55rem;border-radius:var(--radio-s);text-decoration:line-through;text-decoration-color:rgba(122,26,18,.35);white-space:pre-wrap}
.cambio .despues{background:var(--relleno);color:var(--tinta);padding:.35rem .55rem;border-radius:var(--radio-s);margin-top:.25rem;white-space:pre-wrap}
.correccion{margin:.6rem 0}
.ok-lista{margin:.4rem 0 .4rem 1.1rem;color:var(--tinta);font-size:.86rem}
.sesion-aviso{padding:.7rem .85rem;border-radius:var(--radio-s);background:var(--relleno);margin:.6rem 0;font-size:.86rem;line-height:1.5}
.sesion-aviso.mal{background:var(--mal-f);color:#7a1a12}
.sesion-mini{display:flex;gap:6px;margin-top:.5rem;flex-wrap:wrap}
.sesion-mini img{width:56px;height:70px;object-fit:cover;border-radius:4px}
.cs-cat{align-items:flex-end;gap:.75rem}
.cs-cat .campo{flex:1;margin:0;min-width:220px}
.metacampos{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.6rem;margin-top:.9rem}
.mc{border:1px solid var(--linea);border-radius:var(--radio-s);padding:.7rem .8rem;background:var(--papel)}
.mc.vacio{background:#fcfcfc;border-style:dashed}
.mc-nombre{font-weight:600;font-size:.84rem;margin-bottom:.45rem;display:flex;justify-content:space-between;gap:.5rem;text-align:left}
.mc-nombre small{font-weight:400;font-size:.72rem;color:var(--tenue);font-family:var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:55%}
.mc-valores{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center}
.mc-valores .chip{padding:.15rem .3rem .15rem .5rem}
.mc-valores .chip button{border:0;background:none;cursor:pointer;font-size:1rem;line-height:1;padding:0 .15rem;color:inherit;opacity:.6}
.mc-valores .chip button:hover{opacity:1}
.mc-valores .mc-anadir{flex:1;min-width:110px;padding:.25rem .55rem;font-size:.8rem;border-radius:4px}
.mc-vacio{font-size:.76rem;color:var(--tenue)}

/* ------------------------------------------------------------ revisor, temporada, modelos */
.criterios{width:100%;min-height:320px;font-size:.88rem}
.decision{display:grid;grid-template-columns:5.5rem 3.2rem 1fr;gap:.6rem;padding:.55rem 0;border-bottom:1px solid var(--linea);font-size:.84rem;align-items:start}
.decision .v{font-weight:600;font-size:.74rem}
.decision .v.aprobado{color:var(--tinta)} .decision .v.para_ti{color:var(--mal)} .decision .v.sugiere_aprobar{color:var(--suave)}
.temporadas{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:1rem;margin-bottom:1rem}
.temporadas .tarjeta{margin:0}
.tarjeta.temporada.ahora{border-color:var(--tinta)}
.recomendadas{padding-left:1.2rem;margin:.4rem 0}
.recomendadas li{margin-bottom:.7rem}
.recomendadas .barra-pista{display:block;margin:.3rem 0}
.modelos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}
.modelo-card{background:var(--papel);border:1px solid var(--linea);border-radius:var(--radio);overflow:hidden;text-decoration:none;color:inherit}
.modelo-card:hover{border-color:var(--tinta)}
.modelo-card .caras{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--linea);aspect-ratio:3/2}
.modelo-card .caras img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(.15)}
.modelo-card .info{padding:.7rem .8rem}
.fotos-modelo{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.5rem;margin:.6rem 0}
.fotos-modelo figure{margin:0;position:relative}
.fotos-modelo img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--radio-s);display:block}
.fotos-modelo button{position:absolute;top:4px;right:4px;border:0;background:rgba(10,10,10,.75);color:#fff;border-radius:4px;cursor:pointer;font-size:.75rem;padding:.1rem .4rem}
.busqueda{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;padding:.6rem 0;border-bottom:1px solid var(--linea)}
.busqueda b{min-width:180px;font-weight:600;font-size:.86rem;flex:1}
tr.en-rango td:first-child{box-shadow:inset 2px 0 0 var(--tinta)}
.kw td:first-child{font-weight:500}

/* ------------------------------------------------------------ trabajos, mercados, avisos */
.trabajos{position:relative}
.trabajos-pill{display:inline-flex;align-items:center;gap:.45rem;background:var(--tinta);color:#fff;border:0;border-radius:99px;height:30px;padding:0 .8rem;font:inherit;font-size:.78rem;font-weight:500;cursor:pointer;animation:aparece .25s}
.giro{width:.75rem;height:.75rem;border:1.5px solid #fff;border-right-color:transparent;border-radius:50%;animation:giro .8s linear infinite}
.trabajos-lista{display:none;position:absolute;right:0;top:calc(100% + .5rem);width:360px;max-width:calc(100vw - 2rem);max-height:70vh;overflow:auto;background:var(--papel);color:var(--tinta);border:1px solid var(--linea);border-radius:var(--radio);box-shadow:var(--sombra-flota);padding:.5rem;z-index:40}
.trabajos-lista.abierta{display:block;animation:aparece .15s}
.trab{padding:.55rem;border-bottom:1px solid var(--linea);font-size:.82rem}
.trab:last-child{border-bottom:0}
.trab small{color:var(--suave);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trab.error b{color:var(--mal)}
.mercados{display:inline-flex;background:var(--relleno);border-radius:var(--radio-s);padding:2px}
.mercados button{background:transparent;border:0;color:var(--suave);font:inherit;font-size:.78rem;font-weight:600;height:28px;padding:0 .65rem;border-radius:4px;cursor:pointer;transition:background .15s,color .15s}
.mercados button:hover{color:var(--tinta)}
.mercados button.activo{background:var(--papel);color:var(--tinta);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.mercados button.cargando{opacity:.6}
.aviso-cambios{background:var(--relleno);color:var(--tinta);padding:.55rem 1.5rem;font-size:.86rem;display:flex;gap:.8rem;align-items:center;flex-wrap:wrap;border-bottom:1px solid var(--linea);animation:aparece .25s}
main.refrescado .tarjeta,main.refrescado .kpi,main.refrescado .producto{animation:aparece .3s ease}

.toasts{position:fixed;bottom:1.25rem;right:1.25rem;z-index:60;display:flex;flex-direction:column;gap:.5rem;align-items:flex-end;pointer-events:none}
.toast{pointer-events:auto;display:flex;gap:.6rem;align-items:flex-start;background:var(--tinta);color:#fff;padding:.75rem 1rem;border-radius:var(--radio);box-shadow:var(--sombra-flota);max-width:440px;font-size:.86rem;cursor:pointer;opacity:0;transform:translateY(10px);transition:opacity .2s,transform .2s}
.toast.visible{opacity:1;transform:none}
.toast-ico{flex:none;width:1.2rem;height:1.2rem;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:.72rem;background:#fff;color:var(--tinta)}
.toast.error{background:var(--papel);color:var(--mal);border:1px solid #f3d2ce}
.toast.error .toast-ico{background:var(--mal);color:#fff}
.toast.info .toast-ico{background:#fff;color:var(--tinta)}

.modal-fondo{position:fixed;inset:0;background:rgba(10,10,10,.4);display:grid;place-items:center;z-index:70;opacity:0;transition:opacity .2s;padding:1rem}
.modal-fondo.visible{opacity:1}
.modal{background:var(--papel);border-radius:var(--radio);padding:1.4rem;max-width:520px;width:100%;box-shadow:var(--sombra-flota);transform:translateY(8px);transition:transform .2s;border:1px solid var(--linea)}
.modal-fondo.visible .modal{transform:none}
.modal h3{margin:0 0 .6rem;font-size:1rem}
.modal h4{margin:1.1rem 0 .4rem}
.modal-txt{color:var(--tinta-2);font-size:.88rem;max-height:50vh;overflow:auto;margin-bottom:1.1rem}
.modal.modal-ancho{max-width:760px;width:calc(100vw - 32px);max-height:85vh;overflow:auto;text-align:left}

/* ------------------------------------------------------------ entrada */
.pagina-login{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:1rem;background:var(--papel)}
.login{width:100%;max-width:360px}
.login .marca{justify-content:center;font-size:.9rem;margin-bottom:2rem}
.login .tarjeta{border:0;padding:0;background:transparent}
.login h1{font-size:1.35rem;margin-bottom:1.2rem;text-align:center}
.login .boton{height:42px;margin-top:.4rem}
.error-msg{background:var(--mal-f);color:var(--mal);padding:.55rem .75rem;border-radius:var(--radio-s);font-size:.86rem}
.tabla.usuarios tr.inactivo td{opacity:.5}

/* ------------------------------------------------------------ animaciones */
@keyframes giro{to{transform:rotate(360deg)}}
@keyframes temblor{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}50%{transform:translateX(4px)}75%{transform:translateX(-2px)}}
@keyframes aparece{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@keyframes pop{0%{transform:scale(.9)}60%{transform:scale(1.06)}100%{transform:scale(1)}}
@keyframes carga{from{width:0}to{width:85%}}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* =====================================================================
   Tablet
   ===================================================================== */
@media (max-width:1100px){
  .barra{gap:.75rem;padding:0 1rem}
  .selector-tienda span{display:none}
  .producto-layout{grid-template-columns:1fr}
}

/* =====================================================================
   Móvil: menú desplegable, una columna, objetivos táctiles de 44 px
   ===================================================================== */
@media (max-width:860px){
  body{font-size:15px}
  .barra{flex-wrap:wrap;gap:0;padding:0 1rem;min-height:56px}
  .barra .marca{height:56px}
  .barra .trabajos{order:2}
  .menu-boton{display:inline-flex}
  .barra .trabajos{order:2;margin-left:auto;margin-right:.5rem}
  .menu-boton{order:3;margin-left:0}
  .barra .trabajos:has(.trabajos-pill[hidden]){margin-left:auto}
  .menu-panel{display:none;order:4;width:100%;flex-direction:column;gap:1rem;padding:.5rem 0 1.25rem;border-top:1px solid var(--linea);max-height:calc(100dvh - 56px);overflow-y:auto}
  .barra.abierta .menu-panel{display:flex}
  .barra nav{flex-direction:column;align-items:stretch;gap:0;overflow:visible;margin:0;flex-basis:auto}
  .barra nav a{font-size:1rem;padding:.8rem .25rem;border-radius:0;border-bottom:1px solid var(--linea);color:var(--tinta);margin:0}
  .barra nav a.activo{border-bottom-color:var(--linea);font-weight:700}
  .nav-sep{display:none}
  .barra-derecha{margin:0;flex-direction:column;align-items:stretch;gap:.75rem}
  .barra-derecha .trabajos{display:none}
  .selector-tienda{width:100%}
  .selector-tienda span{display:inline;min-width:4.5rem}
  .selector-tienda select{flex:1;height:44px;font-size:1rem}
  .mercados{width:100%}
  .mercados button{flex:1;height:40px;font-size:.9rem}
  .usuario-menu{border-left:0;padding-left:0;justify-content:space-between;font-size:.9rem}
  .aviso-global,.aviso-cambios{padding:.6rem 1rem}

  main{padding:1.25rem 1rem 5rem}
  h1{font-size:1.3rem}
  .titulo-producto{font-size:1.15rem}
  .cabecera.fila-entre>.acciones,.cabecera.fila-entre>.boton{width:100%}
  .cabecera .acciones .boton,.cabecera>.boton{flex:1 1 auto}
  .fila-entre{flex-direction:column;align-items:stretch}
  .fila-entre>.acciones{justify-content:flex-start}
  .aviso.fila-entre .boton{align-self:flex-start}
  .tarjeta{padding:1rem;border-radius:var(--radio)}
  .rejilla-2,.dos,.dos.tres,.producto-layout{grid-template-columns:1fr}

  .boton{height:42px;font-size:.9rem}
  .boton.peque{height:36px;font-size:.84rem}
  .acciones.abajo{flex-direction:column;align-items:stretch}
  .acciones.abajo .boton{width:100%}
  textarea,input:not([type=checkbox]):not([type=radio]):not([type=file]),select{font-size:16px;padding:.65rem .75rem}
  .filtros{flex-direction:column;max-width:none}
  .filtros>*{width:100%;flex:none}

  /* tablas: se desplazan de lado dentro de su tarjeta */
  .tabla{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap}
  .tabla td{white-space:normal;max-width:300px}
  .tabla td a{word-break:normal}
  /* listas (panel, potencial): cada fila como una ficha */
  .tabla.lista-movil,.tabla.lista-movil tbody{display:block;overflow:visible;white-space:normal}
  .tabla.lista-movil tr:has(th){display:none}
  .tabla.lista-movil tr{display:grid;grid-template-columns:1.6rem minmax(0,1fr) auto;gap:.3rem .6rem;padding:.8rem 0;border-bottom:1px solid var(--linea);align-items:start}
  .tabla.lista-movil.con-foto tr{grid-template-columns:1.4rem 56px minmax(0,1fr) auto}
  .tabla.lista-movil tr:last-child{border-bottom:0}
  .tabla.lista-movil td{display:block;padding:0;border:0;max-width:none;background:none!important}
  .tabla.lista-movil td.motivos,.tabla.lista-movil td.ancho{grid-column:1/-1}
  .tabla.lista-movil td:first-child{color:var(--suave);font-size:.8rem;padding-top:.1rem}
  .tabla.lista-movil tr:hover td{background:none}
  .tabla.lista-movil.huecos tr{grid-template-columns:minmax(0,1fr) auto auto;gap:.2rem .9rem}
  .tabla.lista-movil.huecos td:first-child{color:var(--tinta);font-size:.92rem;padding-top:0}
  .tabla.lista-movil td[data-et]{text-align:right;font-variant-numeric:tabular-nums}
  .tabla.lista-movil td[data-et]::after{content:attr(data-et);display:block;color:var(--suave);font-size:.68rem;letter-spacing:.04em;text-transform:uppercase}
  .tabla.lista-movil.huecos td.ancho a{color:var(--suave);font-size:.82rem}
  .scroll,.scroll.alto,.scroll.muy-alto{max-height:none}

  .kpis{grid-template-columns:1fr 1fr}
  .kpi{padding:.9rem}
  .kpi-num{font-size:1.4rem}
  .cuadricula{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}
  .producto .info{padding:.55rem .6rem .65rem}
  .producto strong{font-size:.8rem}
  .galeria{grid-template-columns:repeat(2,minmax(0,1fr))}
  .metacampos{grid-template-columns:1fr}
  .mc-nombre small{display:none}
  .decision{grid-template-columns:4.3rem 1fr;}
  .decision>span:nth-child(2){display:none}
  .barra-fila{grid-template-columns:minmax(90px,40%) 1fr 2.2rem}
  .temporadas{grid-template-columns:1fr}
  .modelos-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pestanas-mercado{margin-left:-1rem;margin-right:-1rem;padding:0 1rem}

  .toasts{left:1rem;right:1rem;bottom:1rem;align-items:stretch}
  .toast{max-width:none}
  .modal-fondo{place-items:end center;padding:0}
  .modal,.modal.modal-ancho{width:100%;max-width:none;border-radius:14px 14px 0 0;max-height:88dvh;overflow:auto;padding:1.25rem 1rem calc(1rem + env(safe-area-inset-bottom))}
  .modal .acciones.derecha{flex-direction:column-reverse;align-items:stretch}
  .busqueda{flex-direction:column;align-items:stretch}
  .busqueda .boton{width:100%}
  .trabajos-lista{position:fixed;left:1rem;right:1rem;top:64px;width:auto}
}
@media (max-width:380px){
  .cuadricula,.modelos-grid{grid-template-columns:1fr}
  .kpis{grid-template-columns:1fr}
}

/* temporada: nombre y estado en una línea también en móvil */
@media (max-width:860px){.recomendadas .fila-entre{flex-direction:row;align-items:baseline;gap:.4rem .6rem}}

/* ------------------------------------------------------------ acentos azules */
a:hover{text-decoration-color:var(--azul)}
.barra nav a.activo{border-bottom-color:var(--azul)}
.pestana.activa{border-bottom-color:var(--azul)}
.marca::before{background:linear-gradient(135deg,var(--tinta) 55%,var(--azul) 55%)}
textarea:focus,input:focus,select:focus{border-color:var(--azul);box-shadow:0 0 0 3px rgba(37,99,235,.14)}
.boton:focus-visible{outline-color:var(--azul)}
input[type=checkbox],input[type=radio]{accent-color:var(--azul)}
.progreso div,.barra-progreso div,.carga{background:var(--azul)}
.barra-val{background:var(--azul)}
.tarjeta.temporada.ahora,.tarjeta.destacada{border-color:var(--azul);box-shadow:0 0 0 1px var(--azul)}
.exito.probar-primero{background:var(--azul);border-color:var(--azul)}
.etq.clic:hover,.producto:hover,.modelo-card:hover{border-color:var(--azul)}
.mercados button.activo{color:var(--azul)}
.tarjeta.revision.rev-ok{border-left-color:var(--azul)}
.sesion-aviso{background:var(--azul-f)}
tr.en-rango td:first-child{box-shadow:inset 2px 0 0 var(--azul)}
.giro{border-color:#93b4ff;border-right-color:transparent}
.boton.primario:hover{background:var(--azul);border-color:var(--azul)}
.aviso{border-left-color:var(--azul)}
.kpi-num .azul,.azul{color:var(--azul)}
.barra nav a.activo{color:var(--tinta)}

/* ------------------------------------------------------------ Komodo */
.komodo{position:fixed;bottom:10px;left:-180px;z-index:80;width:160px;pointer-events:none;animation:komodo-anda 9s linear forwards}
.komodo svg{display:block;width:100%;height:auto}
.komodo .pata-a{animation:komodo-pata .45s ease-in-out infinite alternate;transform-origin:50% 0}
.komodo .pata-b{animation:komodo-pata .45s ease-in-out infinite alternate-reverse;transform-origin:50% 0}
.komodo .lengua{animation:komodo-lengua 1.2s steps(1) infinite}
.komodo-bocadillo{position:absolute;bottom:62px;left:118px;background:var(--tinta);color:#fff;font-size:.72rem;font-weight:600;padding:.25rem .55rem;border-radius:6px;white-space:nowrap}
.komodo-bocadillo::after{content:"";position:absolute;left:10px;bottom:-5px;border:5px solid transparent;border-top-color:var(--tinta);border-bottom:0}
@keyframes komodo-anda{from{left:-180px}to{left:calc(100vw + 20px)}}
@keyframes komodo-pata{from{transform:rotate(-14deg)}to{transform:rotate(14deg)}}
@keyframes komodo-lengua{0%{opacity:0}40%{opacity:1}60%{opacity:0}}
.marca{cursor:pointer;user-select:none}
.kpis{gap:0;background:var(--papel)}
.kpi{box-shadow:1px 0 0 var(--linea),0 1px 0 var(--linea)}
.barra nav a.activo{border-bottom-color:var(--azul)!important}
