/* ====== Base ====== */
:root{
  --tinta:#20303c; --suave:#5b6b78; --linea:#e4e8ec; --fondo:#f7f8fa;
  --marca:#8a4a2b; --marca-osc:#6e3a22; --wa:#25d366; --peligro:#c0392b;
  --radio:12px; --sombra:0 1px 3px rgba(20,40,60,.08),0 8px 24px rgba(20,40,60,.06);
  /* Degradé suave del color de marca (izq->der en header/footer; body al revés) */
  --grad-a:#f4ece4; --grad-b:#ffffff;
  --borde-card:#e7d7ca;   /* borde cálido para los boxes de artículos */
}
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  color:var(--tinta);background:linear-gradient(to right, var(--grad-b), var(--grad-a));line-height:1.5}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

/* ====== Header público ====== */
.top{padding:1rem 1.25rem;background:linear-gradient(to right, var(--grad-a), var(--grad-b));
  border-bottom:1px solid var(--linea);position:sticky;top:0;z-index:10}
.top-inner{max-width:1500px;margin:0 auto;display:flex;align-items:center;gap:1rem;justify-content:space-between;flex-wrap:wrap}
.marca{display:inline-flex;align-items:center;gap:.6rem;font-weight:700;font-size:1.25rem;color:var(--marca);text-decoration:none}
.marca-logo{max-height:52px;max-width:220px;height:auto;width:auto;object-fit:contain}
.marca-nombre{font-size:1.5rem;font-weight:700;color:var(--marca);letter-spacing:.01em}
.top-burger{display:none;background:none;border:none;color:var(--marca);font-size:1.6rem;line-height:1;cursor:pointer;padding:.2rem .4rem}
.top-nav{display:flex;align-items:center;gap:1rem;flex:1;justify-content:flex-end}
.buscar input{padding:.55rem .8rem;border:1px solid var(--linea);border-radius:999px;
  min-width:min(320px,60vw);font-size:.95rem;outline:none}
.buscar input:focus{border-color:var(--marca)}
.contenido{width:100%;max-width:1500px;margin:0 auto;padding:1.5rem 1.25rem}

@media (max-width:991px){
  .top{padding:.7rem 1rem}
  .marca-logo{max-height:40px;max-width:160px}
  .marca-nombre{font-size:1.25rem}
  .top-burger{display:block}
  .top-nav{display:none;flex:1 0 100%;flex-direction:column;align-items:stretch;gap:.5rem;margin-top:.7rem}
  .top-inner.open .top-nav{display:flex}
  .top-nav .buscar{width:100%}
  .top-nav .buscar input{min-width:0;width:100%}
  .top-nav .top-link{justify-content:flex-start;gap:.6rem;padding:.7rem .3rem;font-size:1rem;
    background:none;color:var(--marca);border-radius:0;border-top:1px solid rgba(0,0,0,.08)}
  .top-nav .top-link:hover{background:rgba(0,0,0,.03);color:var(--marca)}
}

/* ====== Filtros (chips, legacy) ====== */
.filtros{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}
.filtros a{padding:.4rem .9rem;border:1px solid var(--linea);border-radius:999px;
  background:#fff;font-size:.9rem;color:var(--suave)}
.filtros a.activo{background:var(--marca);border-color:var(--marca);color:#fff}

/* ====== Catálogo con árbol lateral ====== */
.catalogo{align-items:flex-start}
.cat-arbol{position:sticky;top:90px}
.cat-arbol-tit{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--suave);margin:0 0 .6rem}
.cat-arbol-tit2{margin-top:1.4rem}
.arbol,.arbol-sub{list-style:none;margin:0;padding:0}
.arbol > li{margin-bottom:.1rem}
.arbol-fila{display:flex;align-items:center;gap:.15rem}
.arbol-cat{flex:1;display:block;padding:.35rem .6rem;border-radius:8px;color:var(--tinta);font-size:.92rem}
.arbol-cat:hover{background:#fff}
.arbol-cat.activo{background:var(--marca);color:#fff;font-weight:600}
.arbol-toggle{border:none;background:none;cursor:pointer;color:var(--suave);font-size:1.15rem;line-height:1;
  padding:.15rem .45rem;border-radius:6px;transition:transform .15s}
.arbol-toggle:hover{background:#fff;color:var(--marca)}
.arbol-toggle[aria-expanded="true"]{transform:rotate(90deg)}
.arbol-sub{margin:.15rem 0 .5rem;padding-left:.7rem;border-left:2px solid var(--linea)}
.arbol-sub[hidden]{display:none}
.arbol-sub a{display:block;font-size:.86rem;color:var(--suave);padding:.28rem .6rem;border-radius:8px}
.arbol-sub a:hover{background:#fff}
.arbol-sub a.activo{background:var(--marca);color:#fff}
.precio-box{margin-top:.2rem}
.precio-vals{font-size:.9rem;color:var(--tinta);font-weight:600;margin-bottom:.6rem}
.precio-slider{position:relative;height:28px}
.precio-track{position:absolute;top:12px;left:0;right:0;height:4px;background:var(--linea);border-radius:2px}
.precio-fill{position:absolute;top:12px;height:4px;background:var(--marca);border-radius:2px}
.precio-slider input[type=range]{position:absolute;top:0;left:0;width:100%;height:28px;margin:0;background:none;
  pointer-events:none;-webkit-appearance:none;appearance:none}
.precio-slider input[type=range]::-webkit-slider-thumb{pointer-events:auto;-webkit-appearance:none;appearance:none;
  width:16px;height:16px;border-radius:50%;background:var(--marca);border:2px solid #fff;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.precio-slider input[type=range]::-moz-range-thumb{pointer-events:auto;width:16px;height:16px;border-radius:50%;
  background:var(--marca);border:2px solid #fff;cursor:pointer}
.precio-cuenta{font-size:.82rem;color:var(--suave);margin-top:.5rem}
.cat-arbol-head{display:flex;align-items:center;justify-content:space-between}
.cat-cerrar,.cat-movil-btn{display:none}
@media(max-width:767.98px){
  /* Botón que abre el panel de categorías a pantalla completa */
  .cat-movil-btn{display:flex;align-items:center;gap:.5rem;width:100%;justify-content:center;
    background:#fff;border:1px solid var(--linea);color:var(--marca);font-weight:600;font-size:1rem;
    padding:.7rem 1rem;border-radius:10px;margin-bottom:1rem;cursor:pointer}
  /* Panel full-screen deslizante */
  .cat-arbol{position:fixed;inset:0;z-index:60;margin:0;max-width:none;background:#fff;
    overflow-y:auto;padding:1.2rem 1.3rem;box-shadow:0 0 40px rgba(0,0,0,.25);
    transform:translateX(-100%);transition:transform .25s ease}
  .cat-arbol.abierto{transform:none}
  .cat-arbol-head{margin-top:1rem}
  .cat-cerrar{display:inline-flex;background:none;border:none;color:var(--suave);font-size:1.5rem;cursor:pointer;padding:.1rem .3rem}
  .cat-arbol-tit{font-size:1.1rem;margin:0}
}

/* ====== Galería de la ficha ====== */
.galeria-main{aspect-ratio:1/1;max-width:400px;max-height:400px;margin:0 auto;
  background:#fff;border-radius:var(--radio);overflow:hidden;
  display:flex;align-items:center;justify-content:center}
.galeria-main img{width:100%;height:100%;object-fit:contain}
.galeria-main iframe{width:100%;height:100%;border:0}
.galeria-thumbs{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.6rem}
.gal-thumb{width:60px;height:60px;padding:0;border:2px solid var(--linea);border-radius:8px;
  overflow:hidden;background:#fff;cursor:pointer}
.gal-thumb.activo{border-color:var(--marca)}
.gal-thumb img{width:100%;height:100%;object-fit:cover}
.gal-video{display:flex;align-items:center;justify-content:center;font-size:1.2rem;color:var(--marca)}

/* ====== Galería en el form (admin) ====== */
.medios-actual{margin:.3rem 0 1rem}
.medios-galeria{display:flex;flex-wrap:wrap;gap:.6rem;margin:.3rem 0 1rem}
.medio-thumb{position:relative}
.medio-del{position:absolute;top:-7px;right:-7px;width:20px;height:20px;border-radius:50%;
  background:var(--peligro);color:#fff;font-size:.9rem;line-height:20px;text-align:center;text-decoration:none}

/* ====== Grilla de productos ====== */
.card{width:100%;height:100%;display:flex;flex-direction:column;position:relative;
  background:#fff;border:1px solid var(--borde-card);border-radius:var(--radio);
  overflow:hidden;transition:transform .15s,box-shadow .15s,border-color .15s}
.card:hover{transform:translateY(-4px);box-shadow:0 12px 30px rgba(138,74,43,.16);border-color:var(--marca)}
.card-link{flex:1;display:flex;flex-direction:column;color:inherit;text-decoration:none}
/* Botón de acción (variantes / carrito / WhatsApp): mismo tamaño y estilo que los íconos de compartir,
   alineado en la misma fila, a la derecha. */
.card-wa{position:absolute;bottom:.5rem;right:.6rem;z-index:4;width:28px;height:28px;border:0;padding:0;cursor:pointer;border-radius:50%;
  background:var(--wa);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.8rem;
  transition:transform .12s}
.card-wa:hover{transform:scale(1.12);color:#fff}
.card-wa:focus{outline:none}
/* Cinta de novedad configurable (texto + color por artículo), esquina superior derecha.
   Ancho fijo + texto centrado: cualquier texto queda centrado y se recorta prolijo en la esquina. */
.card-nov{position:absolute;top:20px;right:-56px;width:180px;padding:.28rem 0;text-align:center;
  transform:rotate(45deg);color:#fff;font-size:.6rem;font-weight:700;letter-spacing:.03em;
  text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  box-shadow:0 1px 5px rgba(0,0,0,.25);z-index:2}
.det-nov{top:26px;right:-62px;width:210px;font-size:.72rem;padding:.32rem 0}
/* Pie de la card: compartir (a la izquierda; el botón flotante ocupa la derecha) */
.card-compartir{display:flex;gap:.4rem;justify-content:flex-start;align-items:center;padding:.5rem .6rem;padding-right:2.9rem;border-top:1px solid var(--linea);background:#fafbfc}
.card-compartir .comp-ico{width:28px;height:28px;font-size:.8rem}
.comp-ico.copiado{filter:brightness(.8)}
/* Hover-preview de la card: la 2ª imagen entra por el mismo <img>; el video se superpone. */
.card-img .cf-img{transition:opacity .2s}
.ci-video{background:#fff}
.card-badge{position:absolute;top:.6rem;left:.6rem;z-index:2;font-size:.7rem;font-weight:700;
  padding:.22rem .55rem;border-radius:999px;letter-spacing:.02em}
.card-badge.sin{background:#eceff1;color:#78909c}
.card-badge.ultimas{background:#fbe7d8;color:#b5651d}
.card-img{aspect-ratio:3/2;background:#fff;padding:1.1rem .6rem;display:flex;align-items:center;justify-content:center}
.card-img img,.card-img video{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;margin:auto}
.card-body{padding:.85rem;display:flex;flex-direction:column;flex:1}
.codigo{font-size:.72rem;letter-spacing:.04em;color:var(--suave);text-transform:uppercase}
.card-body h3{margin:.15rem 0 .35rem;font-size:1rem}
.desc{margin:0 0 .6rem;color:var(--suave);font-size:.85rem;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.precio{color:var(--marca);font-size:1.1rem;margin-top:auto}
.vacio{color:var(--suave);padding:2rem 0}

/* ====== Detalle ====== */
.detalle{display:grid;grid-template-columns:1fr 1fr;gap:2rem;background:#fff;
  border:1px solid var(--linea);border-radius:var(--radio);padding:1.5rem}
.detalle-img{background:#fff;border-radius:var(--radio);overflow:hidden}
.detalle-img img{width:100%;object-fit:contain}
.detalle-info h1{margin:.3rem 0}
.etiqueta{display:inline-block;background:var(--fondo);color:var(--suave);
  padding:.2rem .6rem;border-radius:999px;font-size:.8rem;margin-bottom:.5rem}
.desc-corta{color:var(--suave)}
.precio-grande{display:block;font-size:1.8rem;color:var(--marca);margin:.6rem 0 1rem}
.btn-wa{display:inline-block;background:var(--wa);color:#fff;font-weight:600;
  padding:.75rem 1.4rem;border-radius:999px}
.btn-wa:hover{filter:brightness(.95)}
.desc-larga{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--linea);color:#3a4a56}
.volver{margin-top:1.25rem}
.volver a{color:var(--marca)}
/* Sticky footer: el pie queda al fondo aunque haya poco contenido */
body.tienda{display:flex;flex-direction:column;min-height:100vh}
body.tienda .contenido{flex:1 0 auto}
body.tienda .pie{flex-shrink:0}
.pie{background:linear-gradient(to right, var(--grad-a), var(--grad-b));border-top:1px solid var(--linea);box-shadow:0 -6px 22px rgba(20,40,60,.07);margin-top:3rem}
.pie-inner{position:relative;max-width:1500px;margin:0 auto;padding:1.15rem 1.25rem;display:flex;align-items:center;justify-content:flex-end;gap:1rem;flex-wrap:wrap}
.pie-der{display:flex;align-items:center;gap:1rem}
.pie-logo{height:auto;width:auto;max-height:24px;max-width:110px;object-fit:contain}
.pie-dev{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--suave);font-size:.85rem;white-space:nowrap}
.pie-dev a{color:var(--marca);font-weight:600;text-decoration:none}
.pie-dev a:hover{text-decoration:underline}
.pie-mob{color:var(--marca);font-weight:600;font-size:.9rem;text-decoration:none}
.pie-mob:hover{text-decoration:underline}
.pie-wa{margin-left:auto;display:inline-flex;align-items:center;gap:.4rem;background:var(--wa);color:#fff;
  padding:.55rem 1.1rem;border-radius:999px;font-weight:600;font-size:.9rem}
.pie-wa:hover{filter:brightness(.95);color:#fff}
/* "Seguinos" en el footer */
.pie-redes{display:inline-flex;gap:.5rem;margin-left:1rem}
.pie-red{width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:1rem;transition:transform .12s,filter .12s}
.pie-red:hover{transform:translateY(-2px);color:#fff;filter:brightness(1.05)}
.pie-red.facebook{background:#1877f2}
.pie-red.instagram{background:radial-gradient(circle at 30% 110%,#fdf497 0%,#fd5949 45%,#d6249f 60%,#285AEB 90%)}
.pie-red.linkedin{background:#0a66c2}
.pie-red.whatsapp{background:var(--wa)}
/* Fila "Compartir" en la ficha de producto */
.compartir{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin:1rem 0 .25rem}
.compartir-lbl{font-size:.85rem;color:var(--suave);font-weight:600}
.comp-ico{width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;font-size:.95rem;border:0;cursor:pointer;transition:transform .12s,filter .12s}
.comp-ico:hover{transform:translateY(-2px);color:#fff;filter:brightness(1.05)}
.comp-ico.whatsapp{background:var(--wa)}
.comp-ico.facebook{background:#1877f2}
.comp-ico.linkedin{background:#0a66c2}
.comp-ico.instagram{background:radial-gradient(circle at 30% 110%,#fdf497 0%,#fd5949 45%,#d6249f 60%,#285AEB 90%)}
.comp-ico.copiar{background:#64748b}
.comp-ok{font-size:.8rem;color:var(--wa);font-weight:600}
/* Toast de "Publicar" en el admin */
.pub-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);background:#0f172a;color:#fff;padding:.7rem 1.1rem;border-radius:10px;font-size:.88rem;box-shadow:0 6px 22px rgba(0,0,0,.28);opacity:0;transition:opacity .28s,transform .28s;z-index:9999}
.pub-toast.show{opacity:1;transform:translate(-50%,0)}

/* Botones flotantes (FAB) */
.fab-wa{position:fixed;left:20px;bottom:20px;width:56px;height:56px;border-radius:50%;background:var(--wa);
  color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.7rem;z-index:60;
  box-shadow:0 6px 18px rgba(0,0,0,.28);transition:transform .15s}
.fab-wa:hover{transform:scale(1.08);color:#fff}
.fab-top{position:fixed;right:20px;bottom:20px;width:48px;height:48px;border-radius:50%;background:var(--marca);
  color:#fff;border:none;cursor:pointer;font-size:1.1rem;z-index:60;box-shadow:0 6px 18px rgba(0,0,0,.28);
  opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .2s,transform .2s,visibility .2s}
.fab-top.show{opacity:1;visibility:visible;transform:translateY(0)}
.fab-top:hover{background:var(--marca-osc)}
@media(max-width:640px){ .fab-wa{width:50px;height:50px;font-size:1.5rem} }
@media(max-width:640px){ .detalle{grid-template-columns:1fr} }

/* ================= PANEL ADMIN ================= */
.admin{background:linear-gradient(to right, var(--grad-b), var(--grad-a))}
.admin-top{background:linear-gradient(to right, var(--grad-a), var(--grad-b));border-bottom:1px solid var(--linea)}
.admin-top nav{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center}
.admin-top nav a{margin-left:1.25rem;color:var(--suave);font-size:.9rem;white-space:nowrap}
.admin-top nav a:hover{color:var(--marca)}
.admin-top .marca-nombre{color:var(--tinta)}
.admin-main{max-width:1500px;margin:0 auto;padding:1.5rem 1.25rem}
.admin-top-inner{max-width:1500px;margin:0 auto;padding:0 .75rem}
.admin-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.admin-head h1 small{color:var(--suave);font-weight:400;font-size:1rem}
.admin-head-acciones{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.admin-head-acciones form{margin:0}
.admin-head-acciones #input-xlsx{display:none}
.btn-sec{padding:.55rem .9rem;border:1px solid var(--linea);border-radius:8px;
  background:#fff;color:var(--suave);font-size:.9rem;font-weight:600;cursor:pointer;white-space:nowrap}
.btn-sec:hover{border-color:var(--marca);color:var(--marca)}

/* Filtro de tabla */
.filtro-tabla{display:flex;align-items:center;gap:.8rem;margin-bottom:1rem}
.filtro-tabla input{flex:1;max-width:420px;padding:.55rem .8rem;border:1px solid var(--linea);
  border-radius:999px;font-size:.95rem;outline:none}
.filtro-tabla input:focus{border-color:var(--marca)}
.filtro-cuenta{color:var(--suave);font-size:.85rem}

/* Aviso de importación OK */
.aviso-ok{background:#e9f6ec;color:#1e7e34;border:1px solid #cdeccf;
  padding:.7rem .9rem;border-radius:8px;font-size:.9rem;margin-bottom:1rem}
.aviso-ok b{font-weight:700}
.aviso-errores{margin:.5rem 0 0;padding-left:1.2rem;color:var(--peligro)}
.aviso-errores li{font-size:.85rem}
.btn{background:var(--marca);color:#fff;padding:.6rem 1.1rem;border-radius:8px;
  font-weight:600;border:none;cursor:pointer;font-size:.95rem;transition:transform .12s}
.btn:hover{transform:translateY(-2px)}
.btn-sec{padding:.6rem 1.1rem;color:var(--suave)}

/* Tabla */
.tabla-wrap{overflow-x:auto;background:#fff;border:1px solid var(--linea);border-radius:var(--radio)}
.tabla{width:100%;border-collapse:collapse;font-size:.92rem}
.tabla th,.tabla td{padding:.7rem .8rem;text-align:left;border-bottom:1px solid var(--linea)}
.tabla th{background:#f3e7dd;color:var(--marca);font-weight:700;font-size:.76rem;
  text-transform:uppercase;letter-spacing:.05em}
.tabla tbody tr:nth-child(even){background:#faf6f2}
.tabla tbody tr:hover{background:#f5ece4}
.tabla .num{text-align:right;white-space:nowrap}
.qe{width:92px;padding:.28rem .4rem;border:1px solid var(--marca);border-radius:6px;
  font-size:.9rem;text-align:right;font-family:inherit}
.qe.qe-stock{width:60px}
.qe:focus{outline:none;box-shadow:0 0 0 .15rem rgba(138,74,43,.15)}
tr.editando{background:#fbf5ef !important}
.btn-ico{display:inline-block;background:none;border:none;cursor:pointer;color:var(--suave);
  font-size:.95rem;padding:.28rem .4rem;border-radius:6px;text-decoration:none;line-height:1}
.acciones .btn-ico{color:var(--suave);margin-right:.15rem}
.acciones .btn-ico:hover{color:var(--marca);background:#f3e7dd}
.acciones .btn-ico.cat-on{color:var(--marca)}
.acciones .btn-ico.peligro{color:var(--peligro)}
.acciones .btn-ico.peligro:hover{background:#fdecea}
.acciones .qsave{color:#1e7e34}
.acciones .qcancel{color:var(--peligro)}
.mini{width:46px;height:46px;object-fit:cover;border-radius:8px;border:1px solid var(--linea)}
.fila-inactiva{opacity:.5}
.badge{padding:.15rem .55rem;border-radius:999px;font-size:.75rem;font-weight:600}
.badge.on{background:#f3e7dd;color:var(--marca)}
.badge.off{background:#f0f2f4;color:var(--suave)}
.acciones a{margin-right:.7rem;color:var(--marca);font-size:.88rem}
.acciones a.peligro{color:var(--peligro)}
code{background:#f0f2f4;padding:.1rem .4rem;border-radius:4px;font-size:.85rem}

/* Formulario */
.form{background:#fff;border:1px solid var(--linea);border-radius:var(--radio);padding:1.75rem;max-width:1150px}
.form-sub{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;color:var(--suave);
  font-weight:700;margin:0 0 1.1rem;padding-bottom:.55rem;border-bottom:1px solid var(--linea)}
@media(min-width:992px){ .form-media{border-left:1px solid var(--linea)} }
.chk-group{display:flex;flex-wrap:wrap;gap:.45rem .9rem;margin-top:.35rem;max-height:150px;overflow:auto;
  border:1px solid var(--linea);border-radius:8px;padding:.55rem .65rem;background:#fff}
.chk-group .chk{display:inline-flex;align-items:center;gap:.4rem;font-weight:400;font-size:.9rem;margin:0}
.chk-group .sub-chk-wrap[hidden]{display:none}
.form label{display:block;margin-bottom:1rem;font-weight:600;font-size:.9rem}
.form label .form-control,.form label .form-select{margin-top:.35rem}
.form .form-control:focus,.form .form-select:focus{border-color:var(--marca);box-shadow:0 0 0 .2rem rgba(138,74,43,.15)}
.form small{font-weight:400;color:var(--suave)}
.form .fila{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form .check{display:flex;align-items:center;gap:.5rem}
.form .check .form-check-input{margin:0;flex:0 0 auto}
.form-actions{display:flex;align-items:center;gap:1rem;margin-top:.5rem}

/* Parámetros (proveedores / categorías) */
.params-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:start}
.param-card{background:#fff;border:1px solid var(--linea);border-radius:var(--radio);padding:1.25rem}
.param-card h2{margin:0 0 1rem;font-size:1.1rem}
.param-card-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}
.mig-log{background:#0f172a;color:#e2e8f0;border-radius:8px;padding:.9rem 1rem;font-size:.82rem;line-height:1.5;max-height:340px;overflow:auto;white-space:pre-wrap;margin:0}
.check-inline{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:#4a5763;cursor:pointer}
.check-inline input{margin:0}
.mig-tablas{margin-top:1rem;border:1px solid var(--linea);border-radius:10px;padding:.9rem 1rem;background:#fafbfc}
.mig-tablas-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.6rem;padding-bottom:.5rem;border-bottom:1px solid var(--linea)}
.mig-grupos{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.9rem}
.mig-grupo{display:flex;flex-direction:column;gap:.35rem}
.mig-grupo .check-inline.grupo{padding-bottom:.25rem;border-bottom:1px dashed var(--linea);margin-bottom:.15rem}
.mig-grupo .check-inline:not(.grupo){padding-left:.4rem}
.param-card-head h2{margin:0}
.param-card h2 small{color:var(--suave);font-weight:400;font-size:.9rem}
.param-add{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;margin-top:1rem}
.param-add .form-control{flex:1;min-width:120px}
.param-add .prefijo{flex:0 0 90px;text-transform:uppercase}
.param-add .form-control:focus{border-color:var(--marca);box-shadow:0 0 0 .2rem rgba(138,74,43,.15)}
.btn.btn-sm{padding:.35rem .8rem;font-size:.85rem}
.param-hint{color:var(--suave);font-size:.8rem;margin:.7rem 0 0}
.param-uso{color:var(--suave);font-size:.8rem}
.linkbtn{background:none;border:none;padding:0;margin-right:.7rem;cursor:pointer;
  font-family:inherit;font-size:.88rem}
.linkbtn.link{color:var(--marca)}
.linkbtn.peligro{color:var(--peligro)}
.param-checks{display:flex;flex-wrap:wrap;gap:.5rem 1.1rem;margin:.6rem 0 1rem}
.param-checks .check{display:inline-flex;align-items:center;gap:.4rem;font-size:.9rem}
.param-checks .form-check-input{margin:0}
.param-add .form-select{flex:1;min-width:140px}
/* Solapas */
.nav-tabs{border-bottom:1px solid var(--linea)}
.nav-tabs .nav-link{color:var(--suave);border:none;border-bottom:2px solid transparent;
  font-weight:600;padding:.6rem 1.1rem;background:none}
.nav-tabs .nav-link:hover{color:var(--marca);border-bottom-color:var(--borde-card)}
.nav-tabs .nav-link.active{color:var(--marca);border-bottom-color:var(--marca);background:none}
.tab-content{padding-top:1.4rem}
/* Edición inline en tablas de parámetros */
tr.row-edit > td{background:#fbf5ef;padding:.7rem .8rem}
.edit-form{padding:.2rem 0}
.edit-actions{margin-top:.7rem;display:flex;gap:.6rem;align-items:center}
.param-alta{margin-top:1.4rem;border-top:1px solid var(--linea);padding-top:1.1rem}
@media(max-width:820px){ .params-grid{grid-template-columns:1fr} }

/* Login */
.login-body{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh}
.login-card{background:#fff;border:1px solid var(--linea);border-radius:var(--radio);
  padding:2rem;width:min(360px,90vw);box-shadow:var(--sombra)}
.login-logo{display:block;margin:0 auto .75rem;max-width:100%;max-height:96px;width:auto;height:auto;object-fit:contain}
.login-card h1{font-size:1.15rem;text-align:center;color:var(--suave);font-weight:600;margin:0 0 1.5rem}
.login-card label{display:block;margin-bottom:1rem;font-size:.9rem;font-weight:600}
.login-card input{display:block;width:100%;margin-top:.35rem;padding:.6rem .7rem;
  border:1px solid var(--linea);border-radius:8px;font-size:.95rem}
.login-card button{width:100%;background:var(--marca);color:#fff;border:none;
  padding:.7rem;border-radius:8px;font-weight:600;font-size:1rem;cursor:pointer}
.alerta{background:#fdecea;color:var(--peligro);padding:.6rem .8rem;border-radius:8px;
  font-size:.88rem;margin-bottom:1rem}
@media(max-width:640px){ .form .fila{grid-template-columns:1fr} }

/* ================= Catálogo book (public/catalogo.php) ================= */
/* El fondo, color de letra y tipografía de .book-hoja los define catalogo.php
   inline según la configuración (CAT_FONDO / CAT_TEXTO / CAT_FONT). */
.book{max-width:800px;margin:1.5rem auto 0}
.book.flip{perspective:2200px}
.book-hoja{display:none;border-radius:16px;overflow:hidden;box-shadow:var(--sombra);
  position:relative;width:100%;aspect-ratio:8/5;padding:1.3rem 1.5rem 1rem;flex-direction:column}
.book-hoja.activa{display:flex;animation:bkin .3s ease}
/* Pasar página, lento y direccional: avanzar gira desde la izquierda, retroceder desde la derecha. */
.book.flip .book-hoja.activa{transform-origin:left center;animation:bkflip-next 1.35s cubic-bezier(.22,.75,.28,1)}
.book.flip .book-hoja.activa.flip-prev{transform-origin:right center;animation-name:bkflip-prev}
@keyframes bkin{from{opacity:.4}to{opacity:1}}
@keyframes bkflip-next{
  0%{transform:rotateY(-96deg);opacity:.08;box-shadow:-30px 0 50px rgba(0,0,0,.22)}
  55%{opacity:1}
  100%{transform:rotateY(0);opacity:1;box-shadow:var(--sombra)}
}
@keyframes bkflip-prev{
  0%{transform:rotateY(96deg);opacity:.08;box-shadow:30px 0 50px rgba(0,0,0,.22)}
  55%{opacity:1}
  100%{transform:rotateY(0);opacity:1;box-shadow:var(--sombra)}
}
.book-corner{position:absolute;top:14px;right:16px;max-width:80px;max-height:40px;height:auto;width:auto;opacity:.9;pointer-events:none;object-fit:contain}
/* Portada */
.book-portada{align-items:center;justify-content:center;text-align:center;gap:.9rem}
.book-portada.activa{display:flex}   /* gana a .book-hoja{display:none} solo si activa */
.book-portada-titulo{text-transform:uppercase;letter-spacing:.32em;font-size:1em;font-weight:700;opacity:.9}
.book-portada-logo{max-width:min(60%,300px);max-height:40%;object-fit:contain;margin:.3rem 0}
.book-portada-nombre{font-size:2.2em;font-weight:800;line-height:1.1}
.book-portada-pie{margin-top:auto;padding-top:1.6rem;display:flex;flex-direction:column;align-items:center;gap:.7rem}
.book-portada-wa{color:inherit;text-decoration:none;font-weight:700;font-size:1.05em;display:inline-flex;align-items:center;gap:.5rem}
.book-portada-wa:hover{color:inherit;opacity:.85}
.book-portada-cr{font-size:.72em;opacity:.8;max-width:85%;line-height:1.4}
.book-portada-cr .cr-tienda{display:block}
.book-portada-cr .cr-benfer{display:block;font-size:.9em;opacity:.75;margin-top:.15em}
.book-cap{display:inline-block;font-size:.78em;letter-spacing:.14em;text-transform:uppercase;
  font-weight:800;opacity:.9;margin-bottom:1.1rem}
.book-grid{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:.7rem 1.2rem;align-items:stretch}
.book-grid[data-cols="1"]{grid-template-columns:1fr}
.book-grid[data-cols="2"]{grid-template-columns:1fr 1fr}
.book-grid[data-cols="3"]{grid-template-columns:1fr 1fr 1fr;gap:.6rem .9rem}
.book-grid[data-cols="4"]{grid-template-columns:repeat(4,1fr);gap:.5rem .7rem}
@media(max-width:700px){.book-grid[data-cols="3"],.book-grid[data-cols="4"]{grid-template-columns:1fr 1fr}}
.book-item{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}
/* La imagen manda: ocupa casi todo el alto del ítem */
.book-img{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;margin-bottom:.25rem}
.book-foto-box{position:relative;display:inline-flex;max-width:100%;max-height:100%}
.book-foto{max-width:100%;max-height:100%;object-fit:contain;display:block;cursor:zoom-in}
.book-mark{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);max-width:42%;max-height:42%;opacity:.15;pointer-events:none;filter:grayscale(.2)}
.book-wa{position:absolute;right:-7px;bottom:-7px;width:32px;height:32px;border-radius:50%;
  background:var(--wa);color:#fff;display:flex;align-items:center;justify-content:center;
  font-size:.92rem;box-shadow:0 2px 9px rgba(0,0,0,.32);text-decoration:none;transition:transform .15s;z-index:4}
.book-wa:hover{transform:scale(1.12);color:#fff}
/* Miniaturas: circulares, centradas al pie de la foto */
.book-thumbs{position:absolute;left:50%;bottom:5px;transform:translateX(-50%);display:flex;gap:4px;margin:0;z-index:3}
.book-thumb{width:30px;height:30px;border-radius:50%;border:2px solid rgba(255,255,255,.9);
  background-size:cover;background-position:center;background-repeat:no-repeat;padding:0;
  cursor:pointer;box-shadow:0 1px 5px rgba(0,0,0,.4);transition:transform .12s}
.book-thumb:hover{transform:scale(1.16)}
/* Lightbox */
.book-lb{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,.86);padding:2rem}
.book-lb[hidden]{display:none}
.book-lb-img{max-width:92vw;max-height:88vh;object-fit:contain;border-radius:10px;box-shadow:0 12px 48px rgba(0,0,0,.5)}
.book-lb-close{position:absolute;top:14px;right:22px;background:none;border:0;color:#fff;
  font-size:2.6rem;line-height:1;cursor:pointer}
.book-lb-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.16);
  border:0;color:#fff;width:52px;height:52px;border-radius:50%;font-size:1.3rem;cursor:pointer}
.book-lb-nav:hover{background:rgba(255,255,255,.3)}
.book-lb-nav.prev{left:18px}
.book-lb-nav.next{right:18px}
@media(max-width:560px){.book-thumb{width:32px;height:32px}.book-lb-nav{width:44px;height:44px}}
/* Texto compacto: la imagen es la protagonista */
.book-title{font-size:.95em;font-weight:800;margin:0 0 .1rem;line-height:1.1;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.book-rule{width:34px;height:2px;background:currentColor;opacity:.4;border:0;margin:.06rem 0 .28rem}
.book-desc{font-size:.74em;line-height:1.25;margin:0 0 .28rem;opacity:.9;
  display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.book-precio{font-size:1.2em;font-weight:800;display:block;line-height:1;margin-bottom:.1rem}
.book-cod{font-size:.64em;opacity:.7}
.book-nav{display:flex;align-items:center;justify-content:center;gap:1.3rem;margin:1.3rem 0 2.2rem}
.book-nav button{border:none;background:var(--marca);color:#fff;width:48px;height:48px;border-radius:50%;
  font-size:1.05rem;cursor:pointer;transition:background .15s}
.book-nav button:hover:not(:disabled){background:var(--marca-osc)}
.book-nav button:disabled{opacity:.3;cursor:default}
.book-cont{font-weight:700;color:var(--suave);min-width:82px;text-align:center}
@media(max-width:700px){
  /* En celular la hoja crece natural (no forzamos el 8/5 que quedaría muy chato). */
  .book-hoja{aspect-ratio:auto;padding:1.4rem 1.1rem}
  .book-grid,.book-grid[data-cols]{grid-template-rows:none;font-size:1em}
  .book-img{aspect-ratio:1/1;flex:none}
}
@media(max-width:560px){
  .book-grid,.book-grid[data-cols="2"],.book-grid[data-cols="3"],.book-grid[data-cols="4"]{grid-template-columns:1fr;gap:1.2rem}
  .book-precio{font-size:1.5rem}
}

/* Link "Catálogo" en el header público */
.top-link{display:inline-flex;align-items:center;gap:.4rem;background:var(--marca);color:#fff;
  padding:.5rem .9rem;border-radius:999px;font-weight:600;font-size:.9rem;text-decoration:none;white-space:nowrap;transition:transform .12s}
.top-link:hover{transform:translateY(-2px);color:#fff}


/* Precio con descuento: original tachado */
.precio-antes,.book-antes{text-decoration:line-through;opacity:.55;font-size:.82em;margin-right:.4rem;font-weight:600}
.precio-bloque{margin:.6rem 0 1rem}

/* Solapas del form de producto */
.pf-content{padding-top:1.3rem}

/* Desglose de stock en el listado admin */
.stock-detalle{display:block;font-size:.72rem;color:var(--suave);font-weight:400;margin-top:.1rem}

/* Árbol de categorías (Parámetros) */
.cat-tree{font-size:.92rem;border:1px solid var(--linea);border-radius:8px;overflow:hidden}
.cat-box{border:1px solid var(--linea,#e4e8ee);border-radius:10px;margin-bottom:.8rem;overflow:hidden;background:#fff}
.cat-box:last-child{margin-bottom:0}
.cat-nodo{display:flex;align-items:center;gap:.5rem;padding:.4rem .6rem;border-bottom:1px solid #eef0f3;background:#fff}
.cat-nodo:last-child{border-bottom:0}
.cat-nodo.cat-raiz{background:#f4f6f8;border-bottom:1px solid var(--linea,#e4e8ee)}
.cat-nodo.cat-raiz .cat-nombre{color:var(--marca);font-size:1rem}
.cat-nombre{font-weight:600}
.cat-tipo{font-size:.68rem;padding:.1rem .5rem;border-radius:999px;text-transform:uppercase;letter-spacing:.03em}
.cat-tipo.hoja{background:#e9f6ec;color:#1e7e34}
.cat-tipo.cont{background:#eef2f6;color:#5b6b78}
.cat-acc{margin-left:auto;display:flex;gap:.15rem;align-items:center}
.cat-edit,.cat-addsub{padding:.5rem .6rem;background:#faf6f2;border-bottom:1px solid #f0eae4}

/* Árbol de selección de categorías en el form de producto */
.cat-sel-box{border:1px solid var(--linea);border-radius:8px;padding:.6rem .8rem;max-height:320px;overflow:auto}
.cat-sel,.cat-sel ul{list-style:none;margin:0;padding:0}
.cat-sel ul{padding-left:1.1rem;border-left:1px dashed var(--linea);margin-left:.3rem}
.cat-sel li{margin:.15rem 0}
.cat-sel-cont{font-weight:700;color:var(--suave);font-size:.9rem}

/* Escalas (Base/Fijo) en Parámetros */
.esc-bloque{border:1px solid var(--linea);border-radius:8px;padding:.7rem .9rem;margin-bottom:1rem}
.esc-head{display:flex;align-items:center;gap:.7rem}
.esc-nombre{font-weight:700;font-size:1.02rem}
.esc-acc{margin-left:auto;display:flex;gap:.2rem;align-items:center}
.esc-edit{margin-top:.6rem}
.esc-valores{margin-top:.6rem}
.esc-valadd{margin-top:.4rem}

/* Listado: fila de artículo Fijo bajo su Base */
.fila-hijo > td{background:rgba(0,0,0,.025)}
.fila-hijo .hijo-flecha{color:var(--suave);margin-right:.15rem}
.badge.tipo-base{background:#6d28d9;color:#fff}
.badge.tipo-fijo{background:#0e7490;color:#fff}
.base-toggle i{transition:transform .15s ease}
.base-toggle.abierto i{transform:rotate(90deg)}

/* Tienda: card de Base (variantes / desde) + estado de stock */
.card-img{position:relative;overflow:hidden}
.card-variantes{position:absolute;top:.5rem;left:.5rem;background:rgba(20,20,20,.72);color:#fff;font-size:.68rem;font-weight:600;padding:.15rem .5rem;border-radius:20px;backdrop-filter:blur(2px)}
.precio-desde .desde{font-size:.72rem;color:var(--suave);text-transform:uppercase;letter-spacing:.05em;margin-right:.2rem}
/* Banda "Agotado" — cinta diagonal en la esquina, roja muted, delicada */
.card.agotado .card-img img{filter:grayscale(.55);opacity:.85}
.card-band{position:absolute;top:13px;right:-38px;transform:rotate(45deg);background:rgba(150,66,60,.9);color:#fff;font-size:.66rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:.24rem 3rem;box-shadow:0 1px 5px rgba(0,0,0,.2);z-index:2}
.det-band{top:22px;right:-46px;font-size:.8rem;padding:.3rem 3.6rem}
.galeria-main{position:relative;overflow:hidden}
.galeria-main.agotado img{filter:grayscale(.5);opacity:.9}

/* Estado de stock (badge de texto) — solo "Agotado", rojo muted */
.stock-estado{display:inline-block;font-size:.72rem;font-weight:700;padding:.1rem .5rem;border-radius:20px;vertical-align:middle}
.stock-estado.agotado{background:#f0e3e2;color:#9b4a44}

/* Variantes en la ficha del Base */
.variantes{margin-top:1rem}
.variantes-tit{font-size:1rem;margin:0 0 .5rem}
.variantes-tabla{width:100%;border-collapse:collapse}
.variantes-tabla td{padding:.55rem .5rem;border-top:1px solid var(--linea);vertical-align:middle}
.variantes-tabla .v-nom small{color:var(--suave);display:inline-block;margin-left:.3rem}
.variantes-tabla .v-precio{text-align:right;white-space:nowrap}
.variantes-tabla .v-wa{text-align:right;width:1%;white-space:nowrap}
.variantes-tabla .v-img{width:56px;padding-right:0}
.variantes-tabla .v-img img{width:44px;height:44px;max-width:none;object-fit:cover;border-radius:6px;border:1px solid var(--linea)}
.variantes-tabla tr.v-agotado{opacity:.55}
.btn-wa-sm{padding:.3rem .7rem;font-size:.82rem}
.btn-wa-ico{padding:.4rem .55rem;border-radius:8px}
.btn-wa-ico i{margin:0}

/* Leyenda "+ IVA" cuando la tienda muestra precios netos */
.iva-nota{color:var(--suave);font-weight:600;font-size:.7em;white-space:nowrap}

/* Carrito: badge en el header */
.top-carrito{position:relative}
.cart-badge{position:absolute;top:-6px;right:-6px;background:#fff;color:var(--marca);font-size:.7rem;font-weight:700;
  min-width:18px;height:18px;line-height:18px;text-align:center;border-radius:999px;padding:0 4px;border:1px solid var(--marca)}
@media(max-width:991px){ .cart-badge{position:static;margin-left:auto;background:var(--marca);color:#fff} }
.add-cart.added{background:#1a7f37 !important}

/* Botón "Agregar al carrito" con cantidad (ficha de producto) */
.pf-add{display:flex;gap:.6rem;align-items:stretch;margin:.6rem 0}
.qty-input{width:70px;padding:.5rem;border:1px solid var(--linea);border-radius:8px;font-size:1rem;text-align:center}
.pf-add .btn-cuenta{margin-top:0;border-radius:10px}

/* Página del carrito */
.carrito-wrap{max-width:820px;margin:1.4rem auto;padding:0 1rem}
.carrito-tit{color:var(--marca);margin:0 0 1.2rem}
.carrito-vacio{color:var(--suave)}.carrito-vacio a{color:var(--marca)}
.carrito-lista{display:flex;flex-direction:column;gap:.6rem}
.ci{display:flex;align-items:center;gap:.8rem;padding:.7rem;border:1px solid var(--linea);border-radius:10px}
.ci-img{width:56px;height:56px;object-fit:cover;border-radius:8px;flex:none;background:#fff}
.ci-info{flex:1;min-width:0}
.ci-nom{font-weight:600}.ci-cod{color:var(--suave);font-size:.82rem}.ci-precio{color:var(--suave);font-size:.82rem}
.ci-cant{display:flex;align-items:center;gap:.2rem}
.ci-cant button{width:30px;height:30px;border:1px solid var(--linea);background:#fff;border-radius:8px;cursor:pointer;font-size:1.1rem;line-height:1}
.ci-qty{width:52px;height:30px;text-align:center;border:1px solid var(--linea);border-radius:8px}
.ci-sub{width:110px;text-align:right;font-weight:600;white-space:nowrap}
.ci-del{background:none;border:none;color:var(--peligro);font-size:1.4rem;cursor:pointer;line-height:1;padding:0 .2rem}
.carrito-pie{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;margin-top:1.2rem;padding-top:1rem;border-top:2px solid var(--linea)}
.carrito-total{font-size:1.2rem}
.carrito-desglose{min-width:220px}
.carrito-desglose>div{display:flex;justify-content:space-between;gap:1.5rem;padding:.2rem 0;color:var(--suave)}
.carrito-desglose .dsg-total{border-top:1px solid var(--linea);margin-top:.3rem;padding-top:.4rem;color:inherit;font-size:1.2rem}
.carrito-desglose b{color:#20303c}
.carrito-acc{display:flex;gap:.6rem;flex-wrap:wrap}
@media(max-width:600px){
  .ci{flex-wrap:wrap}.ci-info{flex:1 0 60%}.ci-sub{width:auto}
  .carrito-acc{width:100%}.carrito-acc .btn-cuenta{flex:1;text-align:center}
}

/* Checkout */
.checkout-wrap{max-width:640px;margin:1.4rem auto;padding:0 1rem}
.checkout-cliente{background:#fff;border:1px solid var(--linea);border-radius:10px;padding:.9rem 1rem;margin-bottom:1rem;line-height:1.5}
.checkout-tabla{width:100%;border-collapse:collapse;margin-bottom:1rem}
.checkout-tabla td{padding:.55rem .3rem;border-top:1px solid var(--linea)}
.checkout-tabla .num{text-align:right;white-space:nowrap}
.checkout-tabla tfoot td{border-top:2px solid var(--linea);font-size:1.05rem}
.checkout-coment{display:block;font-size:.85rem;color:var(--suave);font-weight:600;margin-bottom:1rem}
.checkout-coment textarea,.checkout-coment select{display:block;width:100%;margin-top:.3rem;padding:.6rem .7rem;border:1px solid var(--linea);border-radius:8px;font-family:inherit;font-size:.95rem;resize:vertical;background:#fff;color:inherit}
.checkout-datos-falta{text-align:center;background:#fff;border:1px solid var(--linea);border-radius:12px;padding:1.6rem}
.checkout-ok{text-align:center;background:#fff;border:1px solid var(--linea);border-radius:12px;padding:1.6rem}
.btn-wa-grande{background:var(--wa) !important;color:#fff;font-size:1.05rem;padding:.8rem 1.6rem;margin:.6rem 0}
.btn-wa-grande:hover{background:#1fb457 !important}
.checkout-links{margin-top:1rem;font-size:.9rem}.checkout-links a{color:var(--marca)}
/* Métodos de pago (checkout) */
.checkout-metodo-tit{font-size:.9rem;font-weight:700;color:var(--suave);margin:.4rem 0 .2rem}
.btn-mp{background:#009ee3 !important;color:#fff;font-size:1.02rem;padding:.8rem 1.4rem;margin:.5rem 0}
.btn-mp:hover{background:#0089c7 !important}
.btn-wa-checkout{background:var(--wa) !important;color:#fff;font-size:1.02rem;padding:.8rem 1.4rem;margin:.5rem 0}
.btn-wa-checkout:hover{background:#1fb457 !important}
/* Página de estado del pago (retorno de Mercado Pago) */
.pago-estado{text-align:center;background:#fff;border:1px solid var(--linea);border-radius:12px;padding:1.8rem 1.4rem}
.pago-ico{font-size:3.4rem;line-height:1;margin-bottom:.6rem}
.pago-ico.ok{color:#2e9e4f}.pago-ico.pend{color:#e0a800}.pago-ico.err{color:#d64545}
/* Estados de pedido (badge) + filas de detalle (admin y cuenta del cliente) */
.ped-badge{display:inline-block;padding:.12rem .55rem;border-radius:11px;font-size:.72rem;font-weight:700;white-space:nowrap}
.ped-badge.ok{background:#d8f3e0;color:#1c7a3f}
.ped-badge.pend{background:#fdf0cf;color:#8a6d1a}
.ped-badge.err{background:#fbdcdc;color:#a62b2b}
.ped-badge.nuevo{background:#dfe9fb;color:#2b4a8a}
.ped-badge.cta{background:#e9e2f7;color:#5a3a8a}
.ped-pdf{color:#b23b3b;font-size:1.05rem}.ped-pdf:hover{color:#8a2a2a}
.ped-toggle{background:none;border:0;cursor:pointer;color:inherit;padding:.1rem .25rem}
.ped-toggle i{transition:transform .15s}.ped-toggle.abierto i{transform:rotate(90deg)}
.ped-det-tabla{width:100%;border-collapse:collapse;font-size:.88rem}
.ped-det-tabla td,.ped-det-tabla th{padding:.28rem .4rem;border-bottom:1px solid var(--linea,#eee)}
.ped-det-box{padding:.6rem .2rem}
.ped-det-datos{font-size:.86rem;margin-bottom:.6rem;line-height:1.7}
.ped-det-datos code{background:#f2f2f2;padding:.05rem .3rem;border-radius:4px}
/* Ajuste de stock (admin/stock.php) */
.stock-cols{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:start}
@media(max-width:820px){.stock-cols{grid-template-columns:1fr}}
/* Pie con identidad del producto (Benfersoft Tiendas vX) */
.admin-pie{text-align:center;color:#9aa5b1;font-size:.78rem;padding:1.4rem 0 1rem;letter-spacing:.02em}
.admin-pie span{opacity:.7}

/* Cuenta del cliente (ingresar / registro / mi cuenta) */
.cuenta-wrap{max-width:520px;margin:1.6rem auto;padding:0 1rem}
.cuenta-wrap-ancho{max-width:860px}
.cuenta-card{background:#fff;border:1px solid var(--linea);border-radius:12px;padding:1.5rem}
.cuenta-tit{color:var(--marca);margin:0 0 1rem;font-size:1.4rem}
.cuenta-sub{color:var(--marca);margin:1.4rem 0 .6rem;font-size:1.05rem}
.cuenta-datos{color:var(--suave);margin:-.6rem 0 1rem}
.cuenta-card label{display:block;font-size:.85rem;color:var(--suave);font-weight:600;margin-bottom:.8rem}
.cuenta-card input,.cuenta-card select{display:block;width:100%;margin-top:.3rem;padding:.6rem .7rem;border:1px solid var(--linea);border-radius:8px;font-size:.95rem;font-family:inherit;color:inherit;background:#fff}
.cuenta-card input:focus,.cuenta-card select:focus{outline:none;border-color:var(--marca)}
.cuenta-nota{font-size:.85rem;color:var(--suave);margin:.2rem 0 .8rem}
.cuenta-datos-form{margin-bottom:1rem}
.dir-lista{list-style:none;padding:0;margin:.2rem 0 .8rem}
.dir-lista li{padding:.45rem .1rem;border-bottom:1px solid var(--linea);font-size:.9rem}
.dir-badge{display:inline-block;background:var(--marca);color:#fff;font-size:.68rem;font-weight:700;padding:.05rem .4rem;border-radius:8px;margin-right:.3rem}
.dir-del{background:none;border:0;color:#c0392b;font-size:1.1rem;cursor:pointer;line-height:1;padding:0 .3rem;float:right}
.dir-nueva{margin-bottom:1rem}.dir-nueva summary{cursor:pointer;color:var(--marca);font-size:.9rem;font-weight:600}
.cta-row{display:flex;gap:1rem}
.cta-row label{flex:1}
.btn-cuenta{display:inline-block;background:var(--marca);color:#fff;border:none;border-radius:999px;padding:.7rem 1.9rem;font-weight:600;font-size:.98rem;cursor:pointer;text-decoration:none;margin-top:.3rem;transition:transform .12s}
.btn-cuenta:hover{transform:translateY(-2px);color:#fff}
.btn-cuenta-sec{background:#efe6dd;color:var(--marca)}
.cuenta-sep{display:flex;align-items:center;text-align:center;color:var(--suave);font-size:.82rem;margin:1.1rem 0 .9rem}
.cuenta-sep::before,.cuenta-sep::after{content:"";flex:1;border-top:1px solid var(--linea)}
.cuenta-sep span{padding:0 .8rem}
.cuenta-google{display:flex;justify-content:center}
.cuenta-check{display:flex;align-items:center;gap:.5rem;font-weight:400;font-size:.88rem;color:var(--suave);margin-bottom:1rem}
.cuenta-check input{width:auto;margin:0}
.cuenta-alt{margin-top:1rem;font-size:.9rem;color:var(--suave)}
.cuenta-alt a,.cuenta-datos a{color:var(--marca)}
.cuenta-ok{background:#e6f4ea;color:#1a7f37;padding:1rem 1.1rem;border-radius:10px;margin-bottom:1rem}
.cuenta-err{background:#f0e3e2;color:#9b4a44;padding:.8rem 1rem;border-radius:10px;margin-bottom:1rem}
.cuenta-vacio{color:var(--suave)}
.cuenta-pedidos{width:100%;border-collapse:collapse;font-size:.92rem}
.cuenta-pedidos th,.cuenta-pedidos td{padding:.5rem;border-top:1px solid var(--linea);text-align:left}
.cuenta-pedidos .num{text-align:right;white-space:nowrap}
.g-recaptcha{margin:.3rem 0 1rem}
@media (max-width:560px){ .cta-row{flex-direction:column;gap:0} .cuenta-card{padding:1.1rem} }

/* Página de contacto */
.contacto-wrap{max-width:640px;margin:1.6rem auto;padding:0 1rem}
.contacto-tit{color:var(--marca);margin:0 0 .2rem}
.contacto-sub{color:var(--suave);margin:0 0 1.2rem}
.contacto-ok{background:#e6f4ea;color:#1a7f37;padding:1rem 1.1rem;border-radius:10px;font-weight:600}
.contacto-err{background:#f0e3e2;color:#9b4a44;padding:.8rem 1rem;border-radius:10px;margin-bottom:1rem}
.form-contacto label{display:block;font-size:.85rem;color:var(--suave);font-weight:600;margin-bottom:.9rem}
.form-contacto input,.form-contacto textarea{display:block;width:100%;margin-top:.3rem;padding:.6rem .7rem;border:1px solid var(--linea);border-radius:8px;font-size:.95rem;font-family:inherit;color:inherit}
.form-contacto input:focus,.form-contacto textarea:focus{outline:none;border-color:var(--marca)}
.form-contacto textarea{resize:vertical}
.fc-row{display:flex;gap:1rem}
.fc-row label{flex:1}
.btn-enviar{background:var(--marca);color:#fff;border:none;border-radius:999px;padding:.7rem 1.9rem;font-weight:600;font-size:.98rem;cursor:pointer;transition:transform .12s}
.btn-enviar:hover{transform:translateY(-2px)}
.g-recaptcha{margin:.3rem 0 1.1rem}
@media (max-width:600px){.fc-row{flex-direction:column;gap:0}}

/* Aparición en cascada de las cards (scroll infinito / carga por tandas) */
@keyframes colEnter{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.col-enter{animation:colEnter .8s ease both}
@media (prefers-reduced-motion: reduce){.col-enter{animation:none}}

/* Scroll infinito: sentinel + botón "Ver más" */
.scroll-sentinel{display:flex;justify-content:center;padding:1.4rem 0 .5rem}
.scroll-sentinel[hidden]{display:none}
.btn-vermas{background:#fff;color:var(--marca);border:1px solid var(--marca);border-radius:999px;
  padding:.6rem 1.6rem;font-weight:600;font-size:.95rem;cursor:pointer;transition:background .15s,color .15s}
.btn-vermas:hover{background:var(--marca);color:#fff}

/* Imagen ampliable: doble-click abre el modal */
.img-small{cursor:zoom-in}
.img-modal{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;padding:2rem}
.img-modal[hidden]{display:none}
.img-modal-bg{position:absolute;inset:0;background:rgba(0,0,0,.82)}
.img-modal-pic{position:relative;max-width:92vw;max-height:88vh;object-fit:contain;border-radius:8px;box-shadow:0 8px 40px rgba(0,0,0,.5);background:#fff}
.img-modal-close{position:absolute;top:1rem;right:1.4rem;background:none;border:none;color:#fff;font-size:2.6rem;line-height:1;cursor:pointer}
.ver-variantes{margin:.6rem 0 0}
.ver-variantes a{color:var(--suave);text-decoration:none;font-size:.88rem}
.ver-variantes a:hover{text-decoration:underline}

/* Grilla de combinaciones de escala (generar Fijos) */
.escala-grid{max-width:640px}
.escala-tabla td .chk{display:flex;align-items:center;gap:.5rem;margin:0}
.escala-tabla code{font-size:.86rem}
.escala-tabla small{color:var(--suave)}
.pf-tipo-lock{padding:.35rem 0}

/* Alta rápida de maestros dentro del formulario de producto */
.quick-add{margin-top:.9rem}
.quick-add .qa-form{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.5rem;padding:.7rem;border:1px dashed var(--linea);border-radius:8px;background:var(--fondo2,#fafafa)}
.quick-add .qa-form .qa-nombre{flex:1 1 180px;min-width:150px}

/* ====== Color de marca (configurable — pisa el :root de arriba) ====== */
:root{
  --marca: #4a47f0;
  --marca-osc: #3a37bb;
  --grad-a: #ededfe;   /* degradé header/footer/body sigue el color */
}
