﻿:root{
  --brand:#779B73;
  --brand-dark:#4F6B52;
  --cream:#FAF6EE;
  --cream-soft:#F4EEE3;
  --surface:#FCF9F3;
  --media-bg:#EFE7D9;
  --accent:#C9826B;
  --text:#4F6B52;
  --muted:#6b7a6d;
  --border:#E5DCCE;
  --font-brand:"Sour Gummy", system-ui, sans-serif;
  --font-numeric:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

*{ margin:0; padding:0; box-sizing:border-box; }

body{
  font-family: "Sour Gummy", system-ui, sans-serif;
  font-style: normal;
  font-weight: 400;
  background-color:#FAF7F0;
  background-image:url("fondo_trama.webp");
  background-repeat:repeat;
  background-position:top left;
  background-attachment:scroll;
  color:var(--text);
  min-height:100vh;
}

button,
input,
select,
textarea{
  font-family: inherit;
  font-style: normal;
}

/* Datos numéricos: legibilidad inequívoca (1 vs 7) sin reemplazar Sour Gummy globalmente */
.font-numeric,
input[type="number"],
input[type="tel"],
input[inputmode="numeric"],
input[inputmode="decimal"],
textarea[inputmode="numeric"],
textarea[inputmode="decimal"],
.product-card__price,
.product-price,
.product-card__stock-badge,
.related-card__price,
.qty-label input,
.cart-link__badge,
.cart-table td[data-label="Precio unitario"],
.cart-table td[data-label="Subtotal"],
.cart-table .js-cart-line-subtotal,
.cart-qty,
.cart-total span,
.cart-coupon-code-pill,
.cart-coupon-applied__code,
.cart-minimo-banner__title,
.cart-minimo-banner__falta,
.checkout-summary-price,
.checkout-summary-total,
.checkout-exito-total__value,
.checkout-exito-codigo,
.checkout-exito-factura-dl dd,
.contact-actions__wa,
.footer-company a,
.wa-top,
.admin-home-metric__value,
.admin-config-stats,
.admin-summary-card__value,
.admin-product-precio-usd,
.admin-product-precio-ars,
.admin-productos-table td.admin-product-row__usd,
.admin-productos-table td.admin-product-row__ars,
.admin-productos-table td.admin-product-row__stock,
.admin-productos-table td.admin-product-row__orden,
.admin-product-stock,
.admin-crud-orden,
.admin-pedido-hero__code code,
.admin-pedido-hero__total,
.admin-pedidos-table .admin-pedido-code,
.admin-pedidos-table .admin-pedido-total,
.admin-pedidos-table .admin-pedido-fecha,
.admin-pedido-qty,
.admin-importes-panel .admin-dl dd,
.admin-pedido-total-dd,
.admin-table--pedido-items td:not(:first-child),
.admin-table td[data-label="ID"],
.admin-table td[data-label="Fecha"],
.admin-ventas-table .admin-venta-total,
.admin-ventas-table .admin-venta-fecha,
.admin-venta-items-table td.admin-venta-item__cantidad,
.admin-venta-items-table td.admin-venta-item__precio,
.admin-venta-items-table td.admin-venta-item__costo,
.admin-venta-items-table td.admin-venta-item__subtotal-venta,
.admin-venta-items-table td.admin-venta-item__subtotal-costo,
.admin-venta-items-table td.admin-venta-item__margen,
.admin-venta-resumen__row dd,
.em-precio,
.em-line-total,
.mam-ruleta-admin-table td[data-label="Orden"],
.mam-ruleta-admin-table td[data-label="Peso"],
.mam-ruleta-admin-table td[data-label="Prob. actual"],
.mam-ruleta-admin-table td[data-label="Entregados"],
.mam-ruleta-admin-table td[data-label="Restantes"],
.mam-ruleta-admin-table td[data-label="Canjeados"],
.mam-ruleta-admin-table td[data-label="ID"],
.page-ruleta--native .ruleta-native-prize__title,
.page-ruleta--native .ruleta-native-gate__input{
  font-family:var(--font-numeric);
  font-variant-numeric:tabular-nums lining-nums;
  font-feature-settings:"tnum" 1, "lnum" 1;
}

.icon{
  display:inline-block;
  width:1em;
  height:1em;
  vertical-align:-0.125em;
  flex-shrink:0;
}

.icon svg{
  display:block;
  width:100%;
  height:100%;
}

/* Fondo sutil (sin capa crema opaca, para dejar ver la trama del body) */
.bg-soft{
  position:fixed;
  inset:0;
  pointer-events:none;
  background:
    radial-gradient(900px 450px at 18% 30%, rgba(140,118,80,.045), transparent 55%),
    radial-gradient(700px 380px at 78% 25%, rgba(90,78,55,.025), transparent 60%),
    radial-gradient(900px 500px at 60% 85%, rgba(119,155,115,.03), transparent 60%);
  z-index:-1;
}

@media (min-width: 1600px){
  .bg-soft{
    background:
      radial-gradient(min(1100px, 55vw) min(520px, 32vh) at 18% 30%, rgba(140,118,80,.045), transparent 55%),
      radial-gradient(min(880px, 42vw) min(420px, 28vh) at 78% 25%, rgba(90,78,55,.025), transparent 60%),
      radial-gradient(min(1100px, 52vw) min(560px, 34vh) at 60% 85%, rgba(119,155,115,.03), transparent 60%);
  }
}

/* Layout */
.shell{
  min-height:100vh;
  display:flex;
  flex-direction:column;
  padding:28px clamp(18px, 4vw, 56px);
}

/* Ancho de contenido: un poco m?s amplio en pantallas muy grandes */
.header,
.main,
.footer{
  max-width:min(1100px, 100%);
}

/* Header: misma rejilla en todas las p?ginas (logo siempre misma celda; no depende de la altura del bloque derecho) */
.header{
  width:100%;
  margin:0 auto;
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:start;
  column-gap:10px;
  row-gap:0;

  padding-top:4px;
  padding-bottom:2px;
}

.header-brand{
  display:flex;
  align-items:flex-start;
  min-width:0;
}

.logo{
  flex-shrink:0;
}

.logo img{
  height:106px;
  width:200px;
  max-width:200px;
  object-fit:contain;
  object-position:left center;
  display:block;
}

/* Mismo encuadre: logo como enlace (a.logo) o div.logo > a ? evita desplazamiento por l?nea inline */
a.logo,
.logo > a{
  display:block;
  line-height:0;
  text-decoration:none;
  border-bottom:0;
  color:inherit;
}

a.logo:hover img,
.logo > a:hover img{
  opacity:.92;
}

.top-actions{
  display:flex;
  align-items:center;
  gap:10px;
}

/* Bot?n WhatsApp superior */
.wa-top{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:12px 16px;
  border:1px solid var(--border);
  border-radius:14px;
  text-decoration:none;
  font-size:14px;
  color:var(--text);
  transition:all .2s ease;
  background:var(--surface);
}

.wa-top .icon{
  font-size:18px;
  color:var(--brand);
}

.wa-top:hover{
  border-color:rgba(119,155,115,.45);
  box-shadow:0 10px 30px rgba(0,0,0,.06);
  transform:translateY(-1px);
}

/* Main */
.main{
  width:100%;
  margin:0 auto;
  flex:1;
  display:grid;
  align-items:center;
  padding:22px 0 18px;
}

/* Hero (base) */
.hero{
  display:grid;
  gap:18px;
  text-align:left;
}

.kicker{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-size:13px;
  color:var(--muted);
  letter-spacing:.08em;
  text-transform:uppercase;
}

.kicker .dot{
  width:6px; height:6px; border-radius:50%;
  background:var(--brand);
  box-shadow:0 0 0 6px rgba(119,155,115,.08);
}

h1{
  font-size:clamp(34px, 4vw, 56px);
  line-height:1.05;
  letter-spacing:-0.02em;
  font-weight:800;
}

h1 .brand{
  color:var(--brand);
}

.sub{
  font-size:clamp(16px, 1.35vw, 18px);
  line-height:1.6;
  color:#374151;
  max-width:52ch;
}

.rule{
  width:84px;
  height:2px;
  background:var(--brand);
  border-radius:999px;
  opacity:.95;
  margin-top:6px;
}

.ctas{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:10px;
}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:48px;
  padding:14px 18px;
  border-radius:14px;
  text-decoration:none;
  font-weight:600;
  transition:all .25s ease;
  border:1px solid transparent;
}

.btn-primary{
  background:var(--accent);
  color:#fff;
  box-shadow:0 14px 34px rgba(201,130,107,.22);
}

.btn-primary .icon{
  font-size:18px;
  color:#fff;
}

.btn-ghost .icon{
  font-size:18px;
  color:var(--brand);
}

.btn-primary:hover{
  background:#b56f59;
  transform:translateY(-1px);
  box-shadow:0 18px 44px rgba(201,130,107,.28);
}

.btn-ghost{
  background:var(--surface);
  color:var(--text);
  border-color:var(--border);
}

.btn-ghost:hover{
  border-color:rgba(119,155,115,.35);
  transform:translateY(-1px);
  box-shadow:0 10px 30px rgba(0,0,0,.06);
}

.badges{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:12px;
}

.badge{
  font-size:13px;
  color:#374151;
  border:1px solid var(--border);
  background:var(--surface);
  border-radius:999px;
  padding:8px 12px;
}

/* Footer */
.footer{
  width:100%;
  margin:0 auto;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:18px 0 0;
  border-top:1px solid var(--border);
  color:var(--muted);
  font-size:12px;
}

.footer a{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--muted);
  text-decoration:none;
  border-bottom:1px solid transparent;
}

.footer a:hover{
  color:var(--brand);
  border-bottom-color:rgba(119,155,115,.35);
}

.footer-links{
  display:flex;
  gap:18px;
  align-items:center;
  flex-wrap:wrap;
}

.coming{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:12px;
  color:var(--brand);
  background:rgba(119,155,115,.06);
  border:1px solid rgba(119,155,115,.18);
  padding:6px 10px;
  border-radius:8px;
  margin-top:8px;
}

/* =========================================
   HERO SPLIT (texto + imagen) ? AJUSTADO
   ========================================= */

.hero-split{
  display:grid;
  grid-template-columns: 1.1fr 0.9fr;
  align-items:center;
  gap:48px;
}

.hero-text{
  display:grid;
  gap:18px;
  max-width:640px;
}

.hero-text h1{
  font-size:clamp(32px, 3.3vw, 50px);
  line-height:1.06;
}

.hero-text .sub{
  max-width:44ch;
}

/* Home: subt?tulo + CTA orientados a pedido; pills un poco m?s separadas del bloque superior */
.home-hero .hero-text .sub{
  max-width:48ch;
}
.home-hero .home-hero__envio-hint{
  margin:0;
  font-size:13px;
  line-height:1.45;
  max-width:48ch;
}
.home-hero .badges{
  margin-top:14px;
}
@media (max-width:640px){
  .home-hero .badges{
    margin-top:18px;
  }
}

/* Home: m?s aire entre CTAs cuando hay dos controles (Lighthouse: separaci?n de touch targets) */
.home-hero .ctas{
  gap:14px;
}

/* Home banner: imagen con copy integrado; CTAs fuera del arte; proporci?n cercana al hero anterior */
.home-hero.home-hero--banner{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:18px;
  grid-template-columns:none;
}
.home-hero__media{
  position:relative;
  width:100%;
  margin:0;
  border-radius:26px;
  overflow:hidden;
  background:var(--cream);
  box-shadow:0 18px 50px rgba(0,0,0,.10);
  display:flex;
  align-items:center;
  justify-content:center;
}
.home-hero__media picture{
  display:block;
  width:100%;
  height:100%;
}
.home-hero__media .home-hero__img,
.home-hero.home-hero--banner .home-hero__img{
  display:block;
  width:100%;
  height:clamp(360px, min(52vh, 42vw), 580px);
  object-fit:contain;
  object-position:center center;
  border-radius:0;
  box-shadow:none;
}
.home-hero__actions{
  display:flex;
  justify-content:flex-start;
  align-items:center;
}
.home-hero.home-hero--banner .home-hero__actions .ctas{
  margin-top:0;
  gap:14px;
}
.home-featured{
  margin-top:8px;
}
.home-featured__grid{
  margin-top:18px;
}
@media (max-width:900px){
  .home-hero.home-hero--banner{
    gap:14px;
  }
  .home-hero__media{
    border-radius:22px;
  }
  .home-hero__media .home-hero__img,
  .home-hero.home-hero--banner .home-hero__img{
    height:clamp(220px, 42vh, 360px);
    object-fit:contain;
    object-position:center top;
  }
  .home-hero__actions{
    justify-content:stretch;
  }
  .home-hero.home-hero--banner .home-hero__actions .ctas{
    width:100%;
  }
  .home-hero.home-hero--banner .home-hero__actions .btn{
    flex:1 1 auto;
  }
}
@media (min-width:1400px){
  .home-hero__media .home-hero__img,
  .home-hero.home-hero--banner .home-hero__img{
    height:clamp(420px, min(58vh, 36vw), 640px);
  }
}


.hero-image{
  position:relative;
}

.hero-image:before{
  content:"";
  position:absolute;
  inset:-14px -14px -14px 18px;
  border-radius:30px;
  background: radial-gradient(500px 260px at 10% 50%, rgba(119,155,115,.10), transparent 70%);
  z-index:-1;
}

.hero-image img{
  display:block;
  width:100%;
  /* Escala en pantallas altas/anchas; en m?vil lo fija el media query */
  height:clamp(360px, min(52vh, 30vw), 580px);
  object-fit:cover;
  object-position:center;
  border-radius:26px;
  box-shadow:0 18px 50px rgba(0,0,0,.12);
}

/* Responsive: 2 columnas hasta 900px y despu?s stack */
@media (max-width:900px){
  .hero-split{
    grid-template-columns:1fr;
    gap:28px;
  }

  .hero-image{
    order:-1; /* imagen arriba */
  }

  .hero-image img{
    height:260px;
    border-radius:22px;
  }
}

/* Header derecho (p. ej. p?gina de error est?tica legacy) */
.header-right{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  justify-self:stretch;
  min-width:0;
}

/* =========================
   MOBILE (?640px) ? UNIFICADO
   ========================= */
@media (max-width:640px){

  .shell{
    padding:20px 16px;
  }

  .header{
    align-items:start;
  }

  .logo img{
    height:77px;
    width:145px;
    max-width:145px;
  }

  .main{
    align-items:flex-start;
    padding:22px 0 16px;
  }

  .hero{
    gap:20px;
  }

  .kicker{
    font-size:12px;
    letter-spacing:.10em;
    margin-bottom:4px;
  }

  h1{
    font-size:32px;
    line-height:1.08;
    margin-bottom:4px;
  }

  .rule{
    width:60px;
    margin:6px 0 8px;
  }

  .sub{
    font-size:15px;
    line-height:1.6;
    max-width:34ch;
  }

  .ctas{
    flex-direction:column;
    align-items:stretch;
    margin-top:14px;
    gap:12px;
  }

  .btn{
    width:100%;
    justify-content:center;
    padding:16px;
    border-radius:14px;
  }

  .btn-primary .icon{
    font-size:19px;
  }

  .badges{
    margin-top:18px;
    gap:10px;
  }

  .badge{
    font-size:12px;
    padding:8px 12px;
  }

  .footer{
    flex-direction:column;
    align-items:flex-start;
    padding-top:18px;
    gap:10px;
  }

  .footer > div:last-child{
    width:100%;
    gap:10px;
  }

  .wa-top span.txt{ display:none; }
}

/* =========================
   TABLET (641px - 1024px)
   ========================= */
@media (min-width:641px) and (max-width:1024px){

  .shell{
    padding:32px 28px;
  }

  .main{
    padding:60px 0 30px;
  }

  .hero{
    gap:26px;
  }

  h1{
    font-size:46px;
    line-height:1.07;
  }

  .sub{
    font-size:17px;
    max-width:46ch;
  }

  .btn{
    padding:15px 22px;
  }

  .badges{
    gap:12px;
  }
}
/* =========================
   Reveal on scroll (progressive enhancement: .js-reveal en <html> v?a <head>)
   ========================= */
.reveal{
  opacity: 1;
  transform: none;
}

.js-reveal .reveal{
  opacity: 0;
  transform: translateY(14px);
  transition:
    opacity .65s cubic-bezier(.2,.7,.2,1),
    transform .65s cubic-bezier(.2,.7,.2,1);
  will-change: opacity, transform;
  transition-delay: var(--d, 0ms);
}

.js-reveal .reveal.is-visible{
  opacity: 1;
  transform: translateY(0);
}

@media (prefers-reduced-motion: reduce){
  .reveal,
  .js-reveal .reveal,
  .js-reveal .reveal.is-visible{
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* =========================
   PRO TOUCH: CTA shimmer
   ========================= */
.btn.btn-primary{
  position: relative;
  overflow: hidden;
}

.btn.btn-primary:after{
  content:"";
  position:absolute;
  top:-40%;
  left:0;
  width:42%;
  height:180%;
  background: linear-gradient(90deg, transparent, rgba(252,249,243,.25), transparent);
  transform: translate3d(-100%, 0, 0) rotate(20deg);
  opacity: 0;
  animation: shine 7.5s ease-in-out infinite;
  pointer-events:none;
}

@keyframes shine{
  0%,72% { transform: translate3d(-100%, 0, 0) rotate(20deg); opacity:0; }
  76%    { transform: translate3d(40%, 0, 0) rotate(20deg); opacity:1; }
  100%   { transform: translate3d(280%, 0, 0) rotate(20deg); opacity:0; }
}

@media (prefers-reduced-motion: reduce){
  .btn.btn-primary:after{ animation: none; display:none; }
}

/* Pantallas grandes / 4K: m?s aire ?til sin perder legibilidad */
@media (min-width: 1400px){
  .header,
  .main,
  .footer{
    max-width:min(1440px, 100%);
  }

  /* El hero queda bajo el header; sin centrar verticalmente en el viewport */
  .main{
    align-items:start;
    align-content:start;
    padding-top:clamp(16px, 2.5vh, 28px);
    padding-bottom:28px;
  }

  .hero-split{
    grid-template-columns: 1fr 1fr;
    gap:min(64px, 4vw);
  }

  .hero-text{
    max-width:760px;
  }

  .page-inner .hero-split .hero-text{
    max-width:760px;
  }
}

@media (min-width: 1800px){
  .header,
  .main,
  .footer{
    max-width:min(1640px, 100%);
  }

  .hero-split{
    gap:min(84px, 5vw);
  }

  .hero-image img{
    height:clamp(420px, min(58vh, 33vw), 680px);
  }

  .hero-text h1{
    font-size:clamp(34px, 2.8vw, 64px);
  }
}

@media (min-width: 2400px){
  .header,
  .main,
  .footer{
    max-width:min(1840px, 100%);
  }

  .hero-split{
    gap:min(110px, 5.5vw);
  }

  .hero-text{
    max-width:860px;
  }

  .page-inner .hero-split .hero-text{
    max-width:860px;
  }
}

/* =========================
   P?gina: material / descargas (prefijos .downloads-*, .download-*)
   ========================= */

.main.downloads-main{
  display:block;
  align-items:stretch;
  padding:42px 0 18px;
}

@media (min-width:641px) and (max-width:1024px){
  .main.downloads-main{
    padding:60px 0 30px;
  }
}

@media (min-width:1400px){
  .main.downloads-main{
    padding-top:clamp(28px, 4vh, 52px);
    padding-bottom:28px;
  }
}

.downloads-page{
  width:100%;
  max-width:100%;
}

.downloads-page__intro{
  margin-bottom:36px;
}

/* El intro reutiliza .hero-text del home (columna angosta); ac? el ancho debe alinear con la grilla. */
.downloads-page__intro.hero-text{
  max-width:none;
  width:100%;
}

.downloads-page__intro.hero-text .sub{
  max-width:min(40ch, 100%);
}

.downloads-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:22px;
}

@media (min-width:901px){
  .downloads-grid{
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:24px;
  }
}

@media (max-width:900px) and (min-width:641px){
  .downloads-grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:20px;
  }
}

.download-product-card{
  display:flex;
  flex-direction:column;
  min-height:100%;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:22px;
  overflow:hidden;
  box-shadow:0 12px 36px rgba(0,0,0,.05);
  transition:border-color .2s ease, box-shadow .2s ease;
}

.download-product-card:hover{
  border-color:rgba(119,155,115,.22);
  box-shadow:0 16px 44px rgba(0,0,0,.07);
}

.download-product-card__media{
  aspect-ratio:16 / 11;
  overflow:hidden;
  background:#EFE7D9;
  border-bottom:1px solid rgba(0,0,0,.06);
}

.download-product-card__media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}

.download-product-card__body{
  display:flex;
  flex-direction:column;
  gap:14px;
  padding:16px 18px 18px;
  flex:1;
}

.download-product-card__name{
  font-size:1.125rem;
  font-weight:800;
  letter-spacing:-0.02em;
  color:var(--text);
  line-height:1.35;
  overflow-wrap:break-word;
}

.download-product-card__actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:stretch;
  margin-top:auto;
  padding-top:0;
  border-top:none;
}

.download-product-card__actions .download-product-card__btn{
  flex:1 1 calc(50% - 4px);
  min-width:0;
  justify-content:center;
  text-align:center;
}

.download-product-card__btn{
  padding:10px 14px;
  font-size:13px;
  border-radius:12px;
  gap:8px;
}

.download-product-card__btn.btn-primary .icon{
  font-size:15px;
}

/* Video a?n no disponible (misma forma que el bot?n, sin enlace) */
.download-product-card__btn--pending-video{
  opacity:0.55;
  cursor:default;
  pointer-events:none;
  box-shadow:none;
}

.download-product-card__btn--pending-video.btn-primary:hover{
  background:var(--brand);
  transform:none;
  box-shadow:none;
}

.downloads-page .download-product-card__btn--pending-video.btn-primary:after{
  display:none;
}

/* Reveal: escalonado solo dentro de esta p?gina */
.downloads-page .downloads-page__intro.reveal{ --d: 0ms; }
.downloads-page .download-product-card:nth-child(1).reveal{ --d: 40ms; }
.downloads-page .download-product-card:nth-child(2).reveal{ --d: 80ms; }
.downloads-page .download-product-card:nth-child(3).reveal{ --d: 120ms; }
.downloads-page .download-product-card:nth-child(4).reveal{ --d: 160ms; }
.downloads-page .download-product-card:nth-child(5).reveal{ --d: 200ms; }

@media (max-width:640px){
  .main.downloads-main{
    padding:22px 0 16px;
  }

  .downloads-page__intro{
    margin-bottom:28px;
  }

  .downloads-grid{
    grid-template-columns:1fr;
    gap:18px;
  }

  .download-product-card__body{
    padding:16px 16px 18px;
  }

  .downloads-page .download-product-card__actions{
    flex-direction:column;
  }

  .downloads-page .download-product-card__actions .download-product-card__btn{
    width:100%;
    flex:1 1 auto;
    min-width:0;
    justify-content:center;
    padding:12px 12px;
  }
}

/* Texto secundario en 404 (misma columna .sub que el home; solo tono m?s suave en la l?nea del temporizador) */
.page-404-redirect{
  font-size:15px;
  color:var(--muted);
}

/* 404: sin imagen; una columna al ancho del .main (hasta max-width del sitio) */
.hero-split.hero-split--404{
  grid-template-columns:1fr;
  width:100%;
}

.hero-split.hero-split--404 .hero-text{
  max-width:none;
  width:100%;
}

.hero-split.hero-split--404 .hero-text .sub{
  max-width:none;
}

/* ========== Site header, navegaci?n y carrito (etapa 2) ========== */
/* Selectores bajo .header.header--site para ganar a .header global y evitar bullets/markers. */

.header.header--site{
  grid-template-columns:minmax(0,auto) minmax(0,1fr) auto;
  grid-template-rows:auto;
  align-items:center;
  align-content:start;
  position:relative;
  column-gap:clamp(8px, 1.4vw, 14px);
  row-gap:0;
}

.header.header--site .header-brand{
  grid-column:1;
  grid-row:1;
  align-self:center;
}

.header.header--site a.logo.logo--link{
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  min-height:0;
  padding:0;
}
.header.header--site a.logo.logo--link img{
  height:106px;
  width:200px;
  max-width:200px;
  object-fit:contain;
}

.header.header--site .nav-primary{
  grid-column:2;
  grid-row:1;
  justify-self:stretch;
  align-self:center;
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:flex-end;
}

.header.header--site .header-tools{
  grid-column:3;
  grid-row:1;
  display:flex;
  flex-direction:row;
  flex-wrap:nowrap;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  min-width:0;
  align-self:center;
}

/* Lista principal: sin vi?etas ni sangr?a (role="list" + UA pueden mostrar marker si no se resetea el li) */
.header.header--site .nav-primary__list{
  display:flex;
  flex-direction:row;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
  gap:6px 14px;
  list-style:none;
  list-style-type:none;
  margin:0;
  padding:0;
  padding-inline-start:0;
  width:100%;
  max-width:100%;
}

.header.header--site .nav-primary__item{
  list-style:none;
  list-style-type:none;
  margin:0;
  padding:0;
  display:block;
}

.header.header--site .nav-primary__item::marker{
  content:none;
}

.header.header--site .nav-primary__link{
  display:inline-flex;
  align-items:center;
  padding:12px 14px;
  min-height:48px;
  border-radius:10px;
  text-decoration:none;
  font-size:14px;
  font-weight:600;
  color:var(--text);
  border:1px solid transparent;
  transition:background .2s ease, border-color .2s ease, color .2s ease;
  box-sizing:border-box;
}

.header.header--site .nav-primary__link:hover{
  background:rgba(119,155,115,.06);
}

.header.header--site .nav-primary__item--active .nav-primary__link{
  color:var(--brand);
  background:rgba(119,155,115,.08);
  border-color:rgba(119,155,115,.18);
}

.header.header--site .nav-primary__link:focus-visible{
  outline:2px solid var(--brand);
  outline-offset:2px;
}

.header.header--site .cart-link{
  position:relative;
  display:inline-flex;
  flex-shrink:0;
  align-items:center;
  justify-content:center;
  width:48px;
  height:48px;
  border-radius:12px;
  border:1px solid rgba(119,155,115,.45);
  color:var(--brand);
  background:var(--surface);
  text-decoration:none;
  -webkit-tap-highlight-color:rgba(119,155,115,.2);
  transition:border-color .2s ease, box-shadow .2s ease, color .2s ease, background .2s ease;
}

.header.header--site .cart-link:visited{
  color:var(--brand);
}

.header.header--site .cart-link:hover{
  border-color:var(--brand);
  color:var(--brand-dark);
  background:rgba(119,155,115,.06);
  box-shadow:0 8px 22px rgba(119,155,115,.12);
}

.header.header--site .cart-link:hover:visited{
  color:var(--brand-dark);
}

.header.header--site .cart-link[aria-current="page"]{
  border-color:var(--brand);
  color:var(--brand-dark);
  background:rgba(119,155,115,.08);
  box-shadow:0 0 0 1px rgba(119,155,115,.15);
}

.header.header--site .cart-link:focus-visible{
  outline:2px solid var(--brand);
  outline-offset:2px;
}

.header.header--site .cart-link__icon svg{
  display:block;
  width:22px;
  height:22px;
  color:var(--brand);
}

.header.header--site .cart-link__icon svg path{
  stroke:var(--brand);
}

.header.header--site .cart-link:hover .cart-link__icon svg path{
  stroke:var(--brand-dark);
}

.header.header--site .cart-link[aria-current="page"] .cart-link__icon svg path{
  stroke:var(--brand-dark);
}

.header.header--site .cart-link__badge{
  position:absolute;
  top:5px;
  right:5px;
  min-width:18px;
  height:18px;
  padding:0 5px;
  border-radius:999px;
  background:var(--brand);
  color:#fff;
  font-size:11px;
  font-weight:700;
  line-height:18px;
  text-align:center;
}

.header.header--site .nav-toggle{
  display:inline-flex;
  flex-shrink:0;
  align-items:center;
  justify-content:center;
  width:48px;
  height:48px;
  border-radius:12px;
  border:1px solid rgba(119,155,115,.45);
  background:var(--surface);
  color:var(--brand);
  cursor:pointer;
  font:inherit;
  -webkit-appearance:none;
  appearance:none;
  -webkit-tap-highlight-color:rgba(119,155,115,.2);
  transition:border-color .2s ease, box-shadow .2s ease, color .2s ease, background .2s ease;
}

.header.header--site .nav-toggle:hover{
  border-color:var(--brand);
  color:var(--brand-dark);
  background:rgba(119,155,115,.06);
}

.header.header--site .nav-toggle:focus-visible{
  outline:2px solid var(--brand);
  outline-offset:2px;
}

.header.header--site .nav-toggle__bars{
  display:block;
  width:18px;
  height:1.5px;
  background:currentColor;
  border-radius:1px;
  opacity:1;
  box-shadow:0 6px 0 currentColor, 0 -6px 0 currentColor;
}

@media (min-width:901px){
  .header.header--site .nav-toggle{
    display:none !important;
  }

  .header.header--site .nav-primary{
    position:static;
    max-height:none !important;
    min-height:0;
    opacity:1 !important;
    overflow:visible !important;
    visibility:visible !important;
    pointer-events:auto !important;
    margin-top:0 !important;
    margin-bottom:0 !important;
    padding:0 !important;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
  }
}

@media (max-width:900px){
  .header.header--site{
    grid-template-columns:1fr auto auto;
    grid-template-rows:auto auto;
    align-items:center;
  }

  .header.header--site .header-brand{
    grid-column:1;
    grid-row:1;
    min-width:0;
  }

  .header.header--site .header-tools{
    grid-column:2 / 4;
    grid-row:1;
  }

  .header.header--site .nav-primary{
    grid-column:1 / -1;
    grid-row:2;
    justify-self:stretch;
    align-self:stretch;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    margin-top:0;
    padding:0;
    border:none;
    border-radius:14px;
    background:transparent;
    box-shadow:none;
    max-height:0;
    min-height:0;
    opacity:0;
    visibility:hidden;
    overflow:hidden;
    pointer-events:none;
    transition:max-height .32s ease, opacity .22s ease, visibility 0s linear .25s;
    z-index:30;
  }

  .header.header--site .nav-primary.is-open{
    margin-top:12px;
    padding:12px 14px;
    border:1px solid var(--border);
    background:rgba(252,249,243,.98);
    box-shadow:0 14px 36px rgba(0,0,0,.1);
    max-height:min(72vh, 440px);
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transition:max-height .32s ease, opacity .22s ease, visibility 0s linear 0s;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }

  .header.header--site .nav-primary__list{
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:8px;
    width:100%;
  }

  .header.header--site .nav-primary__link{
    width:100%;
    justify-content:flex-start;
  }

  body.nav-open{
    overflow:hidden;
  }
}

/* El bloque mobile global usa .header { align-items:start } y desalineaba logo + herramientas */
@media (max-width:640px){
  .header.header--site{
    align-items:center;
  }

  .header.header--site a.logo.logo--link img{
    height:77px;
    width:145px;
    max-width:145px;
  }
}

/* P?ginas internas m?nimas */
.main.main--inner{
  display:block;
  align-items:stretch;
  align-content:start;
}

.page-inner .main.main--inner{
  padding-top:16px;
}

.page-block{
  width:100%;
  max-width:min(720px, 100%);
}

/* Ajustes de layout exclusivos para p?ginas internas de texto (sin afectar home) */
.page-inner h1{
  font-size:clamp(26px, 2.4vw, 36px);
  line-height:1.08;
}

.page-inner .page-block{
  max-width:min(980px, 100%);
}

.page-inner .page-block.page-block--wide{
  max-width:min(1100px, 100%);
}

.page-inner .hero-text{
  max-width:none;
}

/* Hero texto+imagen: misma columna de texto que el home (no el max-width:none de internas) */
.page-inner .hero-split .hero-text{
  max-width:640px;
}

.page-inner .hero-split .hero-text .sub{
  max-width:44ch;
}

/* Nosotros: imagen arriba (~altura del h1), no centrada respecto al texto largo ? clase en la section */
@media (min-width:901px){
  .hero-split.hero-split--text-top{
    align-items:start !important;
  }
  .hero-split.hero-split--text-top > .hero-image{
    align-self:start !important;
    margin-top:clamp(1.85rem, 2.9vw, 2.75rem);
  }
}

.page-inner .hero-text .sub{
  max-width:68ch;
}

/* Enlaces en contenido de p?ginas legales (scope: main + .page-legal; sin header/footer/checkout) */
.page-inner .main.main--inner .page-block.page-legal.hero-text a:not(.btn){
  color:var(--brand);
  text-decoration:none;
}
.page-inner .main.main--inner .page-block.page-legal.hero-text a:not(.btn):visited{
  color:var(--brand);
}
.page-inner .main.main--inner .page-block.page-legal.hero-text a:not(.btn):hover{
  color:var(--brand-dark);
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-thickness:1px;
}
.page-inner .main.main--inner .page-block.page-legal.hero-text a:not(.btn):focus-visible{
  color:var(--brand-dark);
  text-decoration:none;
  outline:2px solid var(--brand);
  outline-offset:2px;
}

.contact-actions{
  margin-top:22px;
  display:flex;
  flex-flow:row wrap;
  align-items:center;
  gap:10px 12px;
  width:100%;
  max-width:100%;
}

.contact-actions__wa{
  flex:0 1 auto;
  text-align:center;
}

.contact-actions .contact-actions__secondary{
  flex:0 1 auto;
  font-size:14px;
  font-weight:600;
  padding:12px 16px;
  border-radius:14px;
}

.contact-actions__ig{
  display:inline-flex;
  align-items:center;
  gap:6px;
}

.product-talle-notice{
  margin:16px 0 0;
  padding:12px 14px;
  border-radius:10px;
  font-size:14px;
  line-height:1.45;
}
.product-talle-notice--error{
  border:1px solid rgba(185,28,28,.35);
  background:#fef2f2;
  color:#991b1b;
}
.product-talle-info{
  margin:16px 0 0;
  font-size:15px;
  color:var(--text);
}
.product-talle-fieldset{
  margin:0;
  padding:0;
  border:0;
  min-width:0;
  width:100%;
}
.product-talle-fieldset__legend{
  margin:0 0 10px;
  padding:0;
  font-size:14px;
  font-weight:600;
  color:var(--muted);
}
.product-talle-options{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  width:100%;
}
.product-talle-option{
  position:relative;
  margin:0;
  cursor:pointer;
}
.product-talle-option input{
  position:absolute;
  opacity:0;
  width:0;
  height:0;
  pointer-events:none;
}
.product-talle-option__label{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  min-height:44px;
  padding:10px 14px;
  border:2px solid var(--border);
  border-radius:12px;
  background:#fff;
  font-size:15px;
  font-weight:600;
  color:var(--text);
  transition:border-color .15s ease, background .15s ease, color .15s ease, box-shadow .15s ease;
}
.product-talle-option input:focus-visible + .product-talle-option__label{
  outline:2px solid var(--brand);
  outline-offset:2px;
}
.product-talle-option input:checked + .product-talle-option__label{
  border-color:var(--brand);
  background:var(--brand-soft, rgba(180,83,9,.08));
  color:var(--brand-dark, var(--brand));
  box-shadow:0 0 0 1px var(--brand);
}
.cart-item-talle{
  margin:4px 0 0;
  font-size:13px;
  color:var(--muted);
  line-height:1.35;
}

.admin-talles-fieldset{
  margin:0;
  padding:0;
  border:0;
}
.admin-talles-fieldset__legend{
  margin:0 0 10px;
  padding:0;
  font-size:15px;
  font-weight:700;
}
.admin-talles-varios-wrap.is-hidden{
  display:none;
}

.contact-section-title{
  display:inline-flex;
  align-items:center;
  gap:8px;
}

.contact-section-title .icon{
  font-size:18px;
  color:var(--brand);
}

.contact-locations{
  margin-top:36px;
}

.contact-locations .como-comprar-h2{
  margin-top:0;
}

.contact-locations-grid{
  display:grid;
  grid-template-columns:1fr;
  row-gap:18px;
  margin-top:10px;
}

.contact-location-card{
  border:1px solid var(--border);
  border-radius:14px;
  background:var(--surface);
  padding:18px 18px;
}

.contact-location-card h3{
  font-size:16px;
  line-height:1.3;
  margin:0 0 6px;
  color:var(--text);
}

.contact-location-card p{
  margin:0;
  color:#4b5563;
  line-height:1.55;
  font-size:15px;
}

.muted-soft{
  color:var(--muted);
}

@media (max-width:640px){
  .page-inner .main.main--inner{
    padding-top:18px;
  }
}

/* Cat?logo y tienda */
.page-block--wide{
  max-width:min(1100px, 100%);
}

.breadcrumb{
  font-size:14px;
  color:var(--muted);
  margin-bottom:18px;
}
.breadcrumb a{
  color:var(--brand);
  text-decoration:none;
}
.breadcrumb a:hover{ text-decoration:underline; }

.catalog-filters-block{
  margin-top:18px;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  padding:16px 0 18px;
}
.catalog-filters-block__title{
  display:flex;
  align-items:center;
  gap:10px;
  margin:0;
  font-size:15px;
  line-height:1.25;
  font-weight:700;
  letter-spacing:.03em;
  color:var(--text);
}
.catalog-filters-block__title::before{
  content:'';
  flex-shrink:0;
  width:3px;
  height:1.05em;
  min-height:13px;
  border-radius:2px;
  background:linear-gradient(180deg, rgba(119,155,115,.75), rgba(119,155,115,.35));
}
.catalog-category-chips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:14px;
}
.catalog-chip{
  display:inline-flex;
  align-items:center;
  max-width:100%;
  min-height:34px;
  padding:8px 12px;
  border:1px solid var(--border);
  border-radius:999px;
  background:var(--surface);
  color:#374151;
  text-decoration:none;
  font-size:13px;
  line-height:1.3;
  font-weight:600;
  transition:border-color .2s ease, background .2s ease, color .2s ease, box-shadow .2s ease;
  overflow-wrap:anywhere;
}
.catalog-chip:hover{
  border-color:rgba(119,155,115,.35);
  color:var(--brand);
  box-shadow:0 4px 14px rgba(0,0,0,.04);
}
.catalog-chip--active{
  border-color:rgba(119,155,115,.42);
  background:rgba(119,155,115,.11);
  color:var(--brand-dark);
  font-weight:700;
  box-shadow:0 0 0 1px rgba(119,155,115,.14);
}
.catalog-subcategorias{
  margin-top:22px;
  max-width:100%;
}
.catalog-subcategorias__label{
  margin:0 0 10px;
  font-size:12px;
  line-height:1.3;
  font-weight:600;
  letter-spacing:.05em;
  color:var(--muted);
}
.catalog-subchips{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  max-width:100%;
  min-width:0;
}
.catalog-subchip{
  display:inline-flex;
  align-items:center;
  max-width:100%;
  min-height:30px;
  padding:5px 10px;
  border:1px solid rgba(0,0,0,.08);
  border-radius:999px;
  background:rgba(252,249,243,.65);
  color:#6b7280;
  text-decoration:none;
  font-size:12px;
  line-height:1.35;
  font-weight:500;
  transition:border-color .2s ease, background .2s ease, color .2s ease;
  overflow-wrap:anywhere;
}
.catalog-subchip:hover{
  border-color:rgba(119,155,115,.22);
  color:var(--brand);
  background:var(--surface);
}
.catalog-subchip--active{
  border-color:rgba(119,155,115,.22);
  background:rgba(119,155,115,.05);
  color:var(--brand);
  font-weight:500;
}
@media (max-width:640px){
  .catalog-filters-block{
    margin-top:14px;
    padding:14px 0 16px;
  }
  .catalog-filters-block__title{
    font-size:14px;
    letter-spacing:.025em;
  }
  .catalog-category-chips{
    gap:8px 6px;
    margin-top:13px;
  }
  .catalog-chip{
    min-height:32px;
    padding:7px 11px;
    font-size:12px;
  }
  .catalog-subcategorias{
    margin-top:18px;
  }
  .catalog-subcategorias__label{
    margin-bottom:8px;
    font-size:11px;
    letter-spacing:.055em;
  }
  .catalog-subchips{
    gap:6px 5px;
  }
  .catalog-subchip{
    min-height:28px;
    padding:5px 9px;
    font-size:11px;
  }
}

.product-grid{
  list-style:none;
  margin:28px auto 0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(240px, 1fr));
  gap:22px;
  max-width:min(1100px, 100%);
  align-items:stretch;
}

.product-grid > .product-card,
.product-grid > li.product-card{
  display:flex;
  flex-direction:column;
  height:100%;
  min-height:0;
}

.product-card{
  border:1px solid var(--border);
  border-radius:16px;
  overflow:hidden;
  background:var(--surface);
  transition:box-shadow .2s ease, transform .2s ease;
}
.product-card:hover{
  box-shadow:0 12px 36px rgba(0,0,0,.08);
  transform:translateY(-2px);
}
.product-card--featured{
  border-color:rgba(119,155,115,.35);
  box-shadow:0 0 0 1px rgba(119,155,115,.12);
}
.product-card__link{
  display:flex;
  flex-direction:column;
  height:100%;
  text-decoration:none;
  color:inherit;
  padding:0;
}
.product-card__media{
  aspect-ratio:4 / 5;
  width:100%;
  background:var(--media-bg, #EFE7D9);
  flex-shrink:0;
  overflow:hidden;
  position:relative;
}
.product-card__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  display:block;
}
.product-card__body{
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
  min-height:0;
  padding:14px 16px 16px;
  background:linear-gradient(180deg, #FCF9F3 0%, #FCF9F3 100%);
  border-top:1px solid var(--border);
}
.product-card__title{
  font-size:17px;
  font-weight:700;
  margin:0 0 6px;
  line-height:1.35;
  min-height:2.7em;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.product-card__title:has(+ .product-card__subcategoria){
  min-height:0;
  margin-bottom:7px;
}
.product-card__subcategoria{
  font-size:13px;
  line-height:1.4;
  color:var(--muted);
  margin:0 0 6px;
}
.product-card__excerpt{
  font-size:14px;
  color:#4b5563;
  margin:0 0 8px;
  line-height:1.45;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  min-height:2.9em;
}
.product-card__meta{
  font-size:13px;
  color:var(--muted);
  margin:0;
}
.product-card__price{
  font-size:18px;
  font-weight:700;
  color:var(--brand);
  margin:auto 0 0;
  padding-top:8px;
}
.product-card--out-of-stock .product-card__price{
  color:#6b7280;
}
.product-card--out-of-stock .product-card__media img{
  opacity:.9;
  filter:saturate(.9);
}
.product-card__stock-badge{
  display:inline-block;
  margin:10px 0 0;
  padding:5px 11px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:#92400e;
  background:#fffbeb;
  border:1px solid rgba(180,83,9,.28);
  border-radius:8px;
  align-self:flex-start;
}
.product-card__stock-badge--price-slot{
  margin:auto 0 0;
  padding-top:8px;
}
.product-content-info{
  font-size:12px;
  line-height:1.4;
  font-weight:400;
  color:#8b95a7;
  margin:6px 0 0;
}

/* Cat?logo: mensaje sin resultados (m?s sutil y respirado) */
.catalog-empty{
  margin-top:20px;
  padding-top:12px;
  padding-bottom:20px;
  max-width:min(640px, 100%);
}
.catalog-empty__text{
  font-size:15px;
  line-height:1.55;
  font-weight:400;
  margin:0;
}
.catalog-empty__actions{
  margin:16px 0 0;
}

.product-detail__grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:32px;
  align-items:start;
}
@media (max-width:720px){
  .product-detail__grid{ grid-template-columns:1fr; }
}
.product-detail__media{
  border-radius:16px;
  overflow:hidden;
  background:linear-gradient(145deg, #F4EEE3, #E5DCCE);
}
.product-detail__img{
  width:100%;
  height:auto;
  display:block;
  object-fit:contain;
  object-position:center center;
  background:var(--media-bg, #EFE7D9);
}
.product-detail__placeholder{
  aspect-ratio:4 / 5;
  min-height:240px;
}
/* Columna derecha ficha producto: ritmo vertical m?s aireado */
.product-detail__info > .kicker{
  margin-bottom:12px;
}
.product-detail__info > h1{
  margin:0 0 14px;
}
.product-detail__info > .rule{
  margin:0 0 16px;
}
.product-detail__info > .product-meta{
  margin:0 0 14px;
}
.product-detail__info > .sub:not(.muted-soft){
  margin:0 0 20px;
}
.product-detail__info > .product-price{
  margin:6px 0 0;
}
.product-meta{
  font-size:15px;
  color:var(--muted);
  margin:8px 0 0;
}
.product-price{
  font-size:28px;
  font-weight:800;
  color:var(--brand);
  margin:16px 0 0;
}
.product-add-form{
  display:flex;
  flex-wrap:wrap;
  gap:12px 16px;
  align-items:flex-end;
  margin-top:24px;
}

.product-stock-notice{
  margin:18px 0 0;
  padding:14px 16px 16px;
  border-radius:12px;
  border:1px solid rgba(180,83,9,.3);
  background:linear-gradient(180deg, #fffbeb 0%, #fef3c7 100%);
  box-shadow:0 1px 0 rgba(255,255,255,.6) inset;
}
.product-stock-notice__title{
  margin:0 0 8px;
  font-size:16px;
  font-weight:700;
  line-height:1.3;
  color:#78350f;
}
.product-stock-notice__hint{
  margin:0;
  font-size:14px;
  line-height:1.45;
  color:#92400e;
}
.qty-label{
  display:flex;
  flex-direction:column;
  gap:6px;
  font-size:14px;
  color:var(--muted);
}
.qty-label input{
  width:88px;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:10px;
  font-size:16px;
}
.product-detail__long{
  margin-top:36px;
  padding-top:28px;
  border-top:1px solid var(--border);
}
/* Ficha producto: PDF / video en columna derecha (auxiliar, compacto) */
.product-resources--sidebar{
  margin-top:22px;
  padding-top:16px;
  border-top:1px solid var(--border);
}
.product-resources--sidebar .product-resources__box{
  max-width:100%;
  margin:0;
  padding:10px 12px 12px;
  background:#F4EEE3;
  border:1px solid var(--border);
  border-radius:12px;
  box-shadow:none;
}
.product-resources--sidebar .product-resources__title{
  font-size:0.9375rem;
  font-weight:600;
  letter-spacing:-0.01em;
  line-height:1.3;
  margin:0 0 6px;
  color:#374151;
  text-wrap:balance;
}
.product-resources--sidebar .product-resources__intro{
  margin:0 0 10px;
  font-size:13px;
  line-height:1.45;
  color:#4b5563;
  max-width:none;
}
.product-resources--sidebar .product-resources__list{
  list-style:none;
  margin:0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.product-resources--sidebar .product-resources__item{
  margin:0;
  min-width:0;
}
.product-resources--sidebar .product-resources__btn{
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:2px;
  min-height:44px;
  padding:10px 12px;
  border-radius:10px;
  text-align:left;
  font-weight:600;
}
.product-resources--sidebar .product-resources__btn-title{
  font-size:14px;
  font-weight:600;
  letter-spacing:-0.01em;
  line-height:1.25;
  color:var(--text);
}
.product-resources--sidebar .product-resources__btn-meta{
  font-size:12px;
  line-height:1.35;
  font-weight:400;
  max-width:100%;
  color:#5c6370;
}
.product-resources__btn:focus-visible{
  outline:2px solid var(--brand);
  outline-offset:2px;
}
.product-resources__btn.btn-primary:focus-visible{
  outline:2px solid #fff;
  outline-offset:2px;
  box-shadow:0 0 0 3px var(--brand-dark);
}

.btn--small{
  padding:8px 14px;
  font-size:14px;
  border-radius:10px;
}

.related-section{
  margin-top:40px;
  padding-top:32px;
  border-top:1px solid var(--border);
}
.related-section--product{
  max-width:100%;
}
.related-section__title{
  font-size:clamp(20px, 2.2vw, 24px);
  font-weight:700;
  letter-spacing:-0.02em;
  margin:0 0 18px;
  color:var(--text);
}
.related-grid{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(200px, 1fr));
  gap:20px;
}
.related-grid--compact{
  grid-template-columns:repeat(auto-fill, minmax(160px, 1fr));
  gap:14px;
}
.related-card{
  display:flex;
  flex-direction:column;
  border:1px solid var(--border);
  border-radius:14px;
  overflow:hidden;
  background:var(--surface);
}
.related-card--compact{
  flex-direction:row;
  align-items:stretch;
}
.related-card__media{
  flex-shrink:0;
  aspect-ratio:4 / 5;
  background:var(--media-bg, #EFE7D9);
  overflow:hidden;
}
.related-card--compact .related-card__media{
  width:88px;
  min-height:110px;
  aspect-ratio:auto;
}
.related-card__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  display:block;
}
.related-card--compact .related-card__media img{
  aspect-ratio:auto;
  min-height:110px;
}
.related-card__body{
  padding:12px 14px 14px;
  display:flex;
  flex-direction:column;
  gap:6px;
  flex:1;
  min-width:0;
}
.related-card--compact .related-card__body{
  padding:10px 12px;
}
.related-card__title{
  font-size:15px;
  font-weight:600;
  line-height:1.35;
  margin:0;
}
.related-card__title a{
  color:inherit;
  text-decoration:none;
}
.related-card__title a:hover{
  color:var(--brand);
}
.related-card__meta{
  font-size:12px;
  color:var(--muted);
  margin:0;
}
.related-card__price{
  font-size:16px;
  font-weight:700;
  color:var(--brand);
  margin:4px 0 0;
}
.related-card__actions{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:8px;
  margin-top:auto;
  padding-top:10px;
  width:100%;
}
.related-card__actions > a.btn{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  justify-content:center;
}
.related-card__add{
  margin:0;
  display:block;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
.related-card__add .btn{
  width:100%;
  justify-content:center;
}
.related-card__sin-stock{
  font-size:13px;
}

.cart-upsell{
  margin-top:32px;
  padding:20px 18px;
  border-radius:14px;
  border:1px dashed rgba(119,155,115,.25);
  background:rgba(119,155,115,.03);
}
.cart-upsell__kicker{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--muted);
  margin:0 0 4px;
}
.cart-upsell__title{
  font-size:17px;
  font-weight:700;
  margin:0 0 14px;
  color:var(--text);
}
.cart-upsell .related-grid--compact{
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:16px;
  align-items:stretch;
  justify-content:start;
}
.cart-upsell .related-card--compact{
  flex-direction:column;
  min-height:100%;
  max-width:320px;
  width:100%;
}
.cart-upsell .related-card--compact .related-card__media{
  width:100%;
  min-height:0;
}
.cart-upsell .related-card--compact .related-card__media img{
  aspect-ratio:1 / 1;
  min-height:0;
}
.cart-upsell .related-card--compact .related-card__body{
  padding:12px 14px 14px;
  gap:8px;
}
.cart-upsell .related-card__title{
  line-height:1.4;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.cart-upsell .related-card__price{
  margin-top:2px;
}
.cart-upsell .related-card__actions{
  margin-top:auto;
}
@media (max-width:640px){
  .cart-upsell .related-grid--compact{
    grid-template-columns:1fr;
    gap:14px;
  }
  .cart-upsell .related-card--compact{
    max-width:none;
  }
}

.cart-table-wrap{
  overflow-x:auto;
  margin-top:20px;
}
.cart-table{
  width:100%;
  border-collapse:collapse;
  font-size:15px;
}
.cart-table th,
.cart-table td{
  text-align:left;
  padding:12px 10px;
  border-bottom:1px solid var(--border);
  vertical-align:middle;
}
.cart-table th{
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--muted);
}
.cart-table td:first-child{
  min-width:200px;
}
.cart-item-product{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}
.cart-item-product__media{
  flex-shrink:0;
  width:64px;
  height:80px;
  border-radius:12px;
  overflow:hidden;
  background:#EFE7D9;
  border:1px solid rgba(228,224,216,.9);
}
.cart-item-product__thumb{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center center;
  display:block;
}
.cart-item-product__placeholder{
  display:block;
  width:100%;
  height:100%;
  min-height:64px;
  background:linear-gradient(145deg, #F4EEE3, #EFE7D9);
}
.cart-item-product__body{
  min-width:0;
  flex:1;
}
.cart-item-product__body a{
  font-weight:600;
  text-decoration:none;
  color:inherit;
}
.cart-item-product__body a:hover{
  color:var(--brand);
}
.cart-qty{
  width:72px;
  padding:8px 10px;
  border:1px solid var(--border);
  border-radius:8px;
}
.cart-actions{
  margin-top:18px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
}
.cart-actions--secondary{
  margin-top:14px;
  padding-top:4px;
  justify-content:flex-start;
}
.cart-summary__checkout .btn-primary{
  min-width:min(100%, 280px);
}
@media (max-width:640px){
  .btn-block-sm{
    width:100%;
    max-width:100%;
  }
}
.btn-ghost--small{
  font-size:13px;
  padding:8px 12px;
  font-weight:500;
}
.cart-clear-form--discrete{
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid rgba(229,231,235,.7);
}
.cart-clear-form--discrete .btn-ghost--small{
  color:var(--muted);
}
.cart-clear-form--discrete .btn-ghost--small:hover{
  color:var(--text);
}
.cart-notice{
  font-size:15px;
  line-height:1.5;
  margin:0 0 16px;
  padding:14px 16px 14px 18px;
  border-radius:12px;
  border:1px solid var(--border);
  position:relative;
  box-shadow:0 1px 2px rgba(15, 23, 42, 0.06);
}
.cart-notice:last-child{
  margin-bottom:0;
}
.cart-notice--adjust{
  background:linear-gradient(180deg, #fffbeb 0%, #fef3c7 100%);
  border-color:#f59e0b;
  color:#92400e;
}
.cart-notice--adjust::before{
  content:'';
  position:absolute;
  left:0;
  top:10px;
  bottom:10px;
  width:4px;
  border-radius:4px;
  background:#f59e0b;
}
.cart-notice--min{
  background:linear-gradient(180deg, #F9F6F0 0%, #E9EFE6 100%);
  border-color:#C9D6C6;
  color:var(--brand-dark);
  font-weight:500;
}
.cart-notice--min::before{
  content:'';
  position:absolute;
  left:0;
  top:10px;
  bottom:10px;
  width:4px;
  border-radius:4px;
  background:var(--brand);
}
.cart-notice--blocked{
  background:linear-gradient(180deg, #fff7ed 0%, #ffedd5 100%);
  border-color:#fb923c;
  color:#9a3412;
  font-size:15px;
  font-weight:600;
  margin-top:12px;
}
.cart-notice--blocked::before{
  content:'';
  position:absolute;
  left:0;
  top:10px;
  bottom:10px;
  width:4px;
  border-radius:4px;
  background:#ea580c;
}
.cart-alerts{
  margin:0 0 20px;
  padding:16px 18px;
  border-radius:14px;
  background:#FCF9F3;
  border:1px solid rgba(229, 231, 235, 0.95);
  box-shadow:0 4px 18px rgba(15, 23, 42, 0.05);
}
.cart-alerts .cart-notice{
  box-shadow:none;
  margin-bottom:12px;
}
.cart-alerts .cart-notice:last-child{
  margin-bottom:0;
}
.cart-alerts--signal{
  animation:cart-alerts-signal 1.25s ease-out 1;
}
@keyframes cart-alerts-signal{
  0%{ box-shadow:0 4px 18px rgba(15, 23, 42, 0.05); }
  35%{ box-shadow:0 0 0 3px rgba(16, 185, 129, 0.35), 0 8px 28px rgba(15, 23, 42, 0.1); }
  100%{ box-shadow:0 4px 18px rgba(15, 23, 42, 0.05); }
}
@media (prefers-reduced-motion: reduce){
  .cart-alerts--signal{
    animation:none;
  }
}
.cart-summary{
  margin-top:28px;
  padding-top:22px;
  border-top:1px solid var(--border);
}
.cart-total{ font-size:20px; margin-bottom:12px; }
.cart-total--coupon .cart-coupon-code-pill{
  display:inline-block;
  margin-left:4px;
  padding:3px 12px;
  border-radius:999px;
  font-size:16px;
  font-weight:700;
  letter-spacing:.04em;
  color:var(--brand-dark);
  background:linear-gradient(180deg, #ecfdf5 0%, #d1fae5 100%);
  border:1px solid #6ee7b7;
  vertical-align:middle;
}
.cart-total--discount #cart-discount-amount{
  font-weight:700;
  color:var(--brand);
}
.cart-notice--coupon-ok{
  background:linear-gradient(180deg, #ecfdf5 0%, #d1fae5 100%);
  border-color:#34d399;
  color:#14532d;
}
.cart-notice--coupon-ok::before{
  content:'';
  position:absolute;
  left:0;
  top:10px;
  bottom:10px;
  width:4px;
  border-radius:4px;
  background:#10b981;
}
.cart-notice--coupon-error{
  background:linear-gradient(180deg, #fef2f2 0%, #fee2e2 100%);
  border-color:#f87171;
  color:#991b1b;
}
.cart-notice--coupon-error::before{
  content:'';
  position:absolute;
  left:0;
  top:10px;
  bottom:10px;
  width:4px;
  border-radius:4px;
  background:#ef4444;
}
.cart-notice--coupon-info{
  background:linear-gradient(180deg, #F4EEE3 0%, #F4EEE3 100%);
  border-color:#cbd5e1;
  color:#334155;
}
.cart-notice--coupon-info::before{
  content:'';
  position:absolute;
  left:0;
  top:10px;
  bottom:10px;
  width:4px;
  border-radius:4px;
  background:#94a3b8;
}
.cart-coupon-block{
  margin:0 0 18px;
  border:1px solid rgba(229, 231, 235, 0.95);
  border-radius:14px;
  background:linear-gradient(180deg, #FCF9F3 0%, #FCF9F3 100%);
  box-shadow:0 2px 12px rgba(15, 23, 42, 0.04);
  overflow:hidden;
}
.cart-coupon-block > summary{
  list-style:none;
}
.cart-coupon-block > summary::-webkit-details-marker{
  display:none;
}
.cart-coupon-block__summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:14px 16px;
  cursor:pointer;
  font-weight:600;
  font-size:15px;
  color:var(--text);
  user-select:none;
}
.cart-coupon-block__summary:focus-visible{
  outline:2px solid rgba(25, 94, 48, 0.45);
  outline-offset:-2px;
}
.cart-coupon-block[open] > .cart-coupon-block__summary{
  border-bottom:1px solid var(--border);
  background:var(--surface);
}
.cart-coupon-block__summary-text{
  line-height:1.35;
}
.cart-coupon-block__chevron{
  flex-shrink:0;
  width:9px;
  height:9px;
  margin-top:-2px;
  border-right:2px solid var(--muted);
  border-bottom:2px solid var(--muted);
  transform:rotate(45deg);
  transition:transform .2s ease, margin .2s ease;
}
.cart-coupon-block[open] .cart-coupon-block__chevron{
  margin-top:2px;
  transform:rotate(-135deg);
}
@media (prefers-reduced-motion: reduce){
  .cart-coupon-block__chevron{
    transition:none;
  }
}
.cart-coupon-block__body{
  padding:14px 16px 16px;
}
.cart-coupon-applied{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin:0 0 14px;
  padding:12px 14px;
  border-radius:12px;
  background:linear-gradient(180deg, #ecfdf5 0%, #d1fae5 100%);
  border:1px solid #6ee7b7;
  box-shadow:0 1px 2px rgba(15, 23, 42, 0.04);
}
.cart-coupon-applied__icon{
  flex-shrink:0;
  width:22px;
  height:22px;
  margin-top:1px;
  border-radius:999px;
  background:var(--brand);
  position:relative;
}
.cart-coupon-applied__icon::after{
  content:'';
  position:absolute;
  left:7px;
  top:4px;
  width:5px;
  height:10px;
  border:solid #fff;
  border-width:0 2px 2px 0;
  transform:rotate(45deg);
}
.cart-coupon-applied__content{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}
.cart-coupon-applied__label{
  font-size:12px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:#047857;
}
.cart-coupon-applied__code{
  font-size:17px;
  font-weight:700;
  letter-spacing:.05em;
  color:var(--brand-dark);
  word-break:break-word;
}
.cart-coupon-form{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.cart-coupon-form__label{
  display:block;
  margin:0;
}
.cart-coupon-form__label-text{
  font-size:13px;
  font-weight:500;
  color:#374151;
}
.cart-coupon-form__row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:stretch;
}
.cart-coupon-form__input,
.cart-coupon-form input[name="coupon_code"]{
  flex:1 1 160px;
  min-width:0;
  min-height:44px;
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:10px;
  font-family:inherit;
  font-size:15px;
  background:var(--surface);
  transition:border-color .2s ease, box-shadow .2s ease;
}
.cart-coupon-form__input:focus,
.cart-coupon-form input[name="coupon_code"]:focus{
  outline:none;
  border-color:rgba(25, 94, 48, 0.45);
  box-shadow:0 0 0 3px rgba(25, 94, 48, 0.12);
}
.cart-coupon-form__apply{
  flex:0 0 auto;
  align-self:stretch;
  min-height:44px;
  padding-left:16px;
  padding-right:16px;
  font-weight:600;
}
.cart-coupon-remove-form{
  margin-top:12px;
  color:var(--muted);
  border-color:var(--border);
  font-weight:500;
}
.cart-coupon-remove-form:hover{
  color:var(--text);
  border-color:rgba(25, 94, 48, 0.25);
}
@media (max-width:640px){
  .cart-coupon-form__row{
    align-items:flex-start;
  }
  .cart-coupon-block .cart-coupon-form__input,
  .cart-coupon-block .cart-coupon-form input[name="coupon_code"]{
    flex:0 0 auto;
    flex-grow:0;
    align-self:stretch;
    display:block;
    width:100%;
    max-width:100%;
    height:44px;
    min-height:44px;
    max-height:44px;
    padding:10px 12px;
    line-height:1.25;
    box-sizing:border-box;
    resize:none;
    -webkit-appearance:none;
    appearance:none;
  }
  .cart-coupon-form__apply.btn{
    min-height:44px;
    padding:10px 16px;
  }
}
@media (max-width:480px){
  .cart-coupon-form__row{
    flex-direction:column;
    align-items:stretch;
  }
  .cart-coupon-form__apply{
    width:100%;
  }
  .cart-coupon-form__apply.btn{
    width:100%;
  }
}
.cart-clear-form{ margin-top:18px; }
.link-button{
  background:none;
  border:0;
  padding:0;
  font:inherit;
  color:var(--brand);
  cursor:pointer;
  text-decoration:underline;
}
.link-button:hover{ color:var(--brand-dark); }

@media (max-width:640px){
  .cart-table-wrap{
    overflow-x:visible;
  }

  .cart-table{
    width:100%;
    border-collapse:separate;
    border-spacing:0;
  }

  .cart-table thead{
    display:none;
  }

  .cart-table tbody,
  .cart-table tr,
  .cart-table td{
    display:block;
    width:100%;
  }

  .cart-table tr{
    border:1px solid var(--border);
    border-radius:14px;
    background:var(--surface);
    padding:12px;
    margin-bottom:12px;
    box-shadow:0 8px 24px rgba(0,0,0,.04);
  }

  .cart-table td{
    border:0;
    padding:8px 0;
    text-align:left;
  }

  .cart-table td::before{
    content:attr(data-label);
    display:block;
    font-size:12px;
    letter-spacing:.04em;
    text-transform:uppercase;
    color:var(--muted);
    margin-bottom:4px;
    font-weight:600;
  }

  .cart-table td[data-label="Producto"] .cart-item-product{
    flex-direction:column;
    align-items:stretch;
    gap:10px;
  }
  .cart-table td[data-label="Producto"] .cart-item-product__body{
    order:1;
    width:100%;
  }
  .cart-table td[data-label="Producto"] .cart-item-product__media{
    order:2;
    align-self:flex-start;
  }
  .cart-table td[data-label="Producto"] .cart-item-product__body a{
    font-weight:700;
  }

  .cart-qty{
    width:100%;
    max-width:130px;
  }
}

/* Admin: conservar fondo previo; la paleta crema c?lida aplica al sitio p?blico */
.admin-body{
  background:var(--cream);
  color:var(--text);
}
.admin-body .logo img,
.admin-mobile-bar__logo img,
.admin-sidebar__brand .logo img,
.admin-header .logo img{
  height:85px;
  width:160px;
  max-width:160px;
  object-fit:contain;
}
.admin-shell{
  max-width:1100px;
  margin:0 auto;
  padding:24px clamp(16px, 3vw, 32px) 48px;
}
.admin-shell--app{
  --admin-sidebar-width:248px;
  max-width:min(1360px, 100%);
  padding:clamp(16px, 2.5vw, 24px) clamp(16px, 3vw, 28px) 40px;
}
.admin-header{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:12px 16px;
  padding-bottom:16px;
  margin-bottom:20px;
  border-bottom:1px solid var(--border);
}
.admin-layout{
  display:flex;
  flex-direction:column;
  gap:0;
  min-width:0;
}
.admin-mobile-bar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding-bottom:14px;
  margin-bottom:0;
  border-bottom:1px solid var(--border);
}
.admin-sidebar{
  min-width:0;
}
.admin-sidebar__brand{
  display:none;
}
.admin-nav{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  width:100%;
  font-size:14px;
  margin:0;
  padding:0;
  border:none;
  background:transparent;
  box-shadow:none;
  max-height:0;
  min-height:0;
  opacity:0;
  visibility:hidden;
  overflow:hidden;
  pointer-events:none;
  transition:opacity .22s ease, visibility 0s linear .25s;
  z-index:30;
}
.admin-nav__bar{
  width:100%;
  min-width:0;
}
.admin-nav.is-open{
  margin:8px 0 12px;
  max-height:min(calc(100dvh - 88px), calc(100vh - 88px));
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  overflow-x:hidden;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  transition:opacity .22s ease, visibility 0s linear 0s;
}
.admin-nav.is-open .admin-nav__bar{
  padding:12px 14px 16px;
  border:1px solid var(--border);
  border-radius:14px;
  background:rgba(252,249,243,.98);
  box-shadow:0 14px 36px rgba(0,0,0,.1);
}
.admin-nav-groups{
  display:flex;
  flex-direction:column;
  gap:0;
  width:100%;
  min-width:0;
}
.admin-nav-group{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:6px;
  min-width:0;
  padding:0 0 12px;
  margin:0 0 12px;
  border-bottom:1px solid var(--border);
}
.admin-nav-group:last-child{
  padding-bottom:0;
  margin-bottom:0;
  border-bottom:none;
}
.admin-nav-group__label{
  font-size:10px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--muted);
  padding:0 10px 2px;
  line-height:1.2;
}
.admin-nav-group__items{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:4px;
}
.admin-nav-post{
  margin:0;
}
.admin-nav__link,
.admin-nav-post__btn{
  display:flex;
  align-items:center;
  width:100%;
  padding:9px 12px;
  min-height:40px;
  border-radius:10px;
  font-size:13px;
  font-weight:600;
  color:var(--text);
  text-decoration:none;
  border:1px solid transparent;
  transition:background .2s ease, border-color .2s ease, color .2s ease;
  box-sizing:border-box;
  justify-content:flex-start;
  overflow-wrap:break-word;
  word-break:break-word;
}
.admin-nav-post__btn{
  background:transparent;
  cursor:pointer;
  font-family:inherit;
}
.admin-nav__link:hover,
.admin-nav-post__btn:hover{
  background:rgba(119,155,115,.06);
  color:var(--text);
}
.admin-nav__link.is-active,
.admin-nav__link[aria-current="page"],
.admin-nav-post__btn.is-active{
  color:var(--brand);
  background:rgba(119,155,115,.08);
  border-color:rgba(119,155,115,.18);
}
.admin-nav__link:focus-visible,
.admin-nav-post__btn:focus-visible{
  outline:2px solid var(--brand);
  outline-offset:2px;
}
.admin-nav-toggle{
  display:inline-flex;
  flex-shrink:0;
  width:44px;
  height:44px;
  margin-left:auto;
  border:1px solid rgba(119,155,115,.45);
  border-radius:12px;
  background:var(--surface);
  color:var(--brand);
  cursor:pointer;
  font:inherit;
  -webkit-appearance:none;
  appearance:none;
  -webkit-tap-highlight-color:rgba(119,155,115,.2);
  align-items:center;
  justify-content:center;
  transition:border-color .2s ease, box-shadow .2s ease, color .2s ease, background .2s ease;
}
.admin-nav-toggle:hover{
  border-color:var(--brand);
  color:var(--brand-dark);
  background:rgba(119,155,115,.06);
}
.admin-nav-toggle:focus-visible{
  outline:2px solid var(--brand);
  outline-offset:2px;
}
.admin-nav-toggle__bars{
  display:block;
  width:18px;
  height:1.5px;
  background:currentColor;
  border-radius:1px;
  opacity:1;
  box-shadow:0 6px 0 currentColor, 0 -6px 0 currentColor;
}
.admin-main{
  min-width:0;
}
@media (min-width:901px){
  .admin-shell--app{
    padding:20px clamp(16px, 2.5vw, 28px) 44px;
  }
  .admin-layout{
    display:grid;
    grid-template-columns:var(--admin-sidebar-width) minmax(0, 1fr);
    grid-template-rows:auto 1fr;
    grid-template-areas:
      "sidebar main"
      "sidebar main";
    column-gap:clamp(20px, 2.5vw, 32px);
    row-gap:0;
    align-items:start;
  }
  .admin-mobile-bar{
    display:none;
  }
  .admin-sidebar{
    grid-area:sidebar;
    position:sticky;
    top:16px;
    align-self:start;
    width:var(--admin-sidebar-width);
    max-height:calc(100vh - 32px);
    overflow-x:hidden;
    overflow-y:auto;
    padding:14px 10px 18px;
    background:var(--surface);
    border:1px solid var(--border);
    border-radius:12px;
    box-shadow:0 1px 2px rgba(0,0,0,.04);
    -webkit-overflow-scrolling:touch;
  }
  .admin-sidebar__brand{
    display:block;
    padding:0 6px 14px;
    margin-bottom:12px;
    border-bottom:1px solid var(--border);
  }
  .admin-sidebar__brand .logo--link{
    display:inline-block;
  }
  .admin-nav{
    max-height:none;
    min-height:0;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    overflow:visible;
  }
  .admin-nav__bar{
    padding:0;
    border:none;
    border-radius:0;
    background:transparent;
    box-shadow:none;
  }
  .admin-nav-group{
    padding:0 4px 12px;
    margin:0 0 12px;
  }
  .admin-nav-group__label{
    padding:0 8px 4px;
  }
  .admin-nav__link,
  .admin-nav-post__btn{
    padding:8px 10px;
    min-height:36px;
    font-size:13px;
    border-radius:8px;
  }
  .admin-main{
    grid-area:main;
    padding-top:2px;
    min-width:0;
  }
}
@media (max-width:900px){
  body.admin-body--app.nav-open{
    overflow:hidden;
  }
}
.admin-body--login .admin-nav-toggle{
  display:none;
}
.admin-panel h1{ font-size:28px; margin-bottom:12px; }
.admin-panel h2{ font-size:18px; margin:28px 0 12px; }
.admin-intro-hint{
  max-width:42rem;
  margin:0 0 8px;
  font-size:14px;
  color:var(--muted);
  line-height:1.45;
}
.admin-producto-page-title{
  font-size:20px;
  font-weight:600;
  margin:20px 0 16px;
  letter-spacing:-0.02em;
}
/* Formulario producto: bloques tipo card */
.admin-form--producto{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:22px;
  max-width:100%;
  margin-top:4px;
}
.admin-form--producto .admin-form__hiddens{
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
.admin-form-card{
  border:1px solid var(--border);
  border-radius:12px;
  padding:18px 20px 20px;
  background:var(--surface);
  box-shadow:0 1px 2px rgba(0,0,0,.04);
}
.admin-form-card--actions{
  padding-bottom:18px;
}
.admin-form-card__title{
  font-size:15px;
  font-weight:600;
  margin:0 0 14px;
  padding-bottom:10px;
  border-bottom:1px solid var(--border);
  color:#1f2937;
  letter-spacing:-0.01em;
}
.admin-form-card__lead{
  margin:-4px 0 16px;
  font-size:13px;
  line-height:1.45;
  max-width:48rem;
}
.admin-form-card__foot{
  margin:14px 0 0;
  font-size:12px;
  color:var(--muted);
  max-width:42rem;
}
.admin-form-card__grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(240px, 1fr));
  gap:16px 20px;
  align-items:start;
}
.admin-form-card__grid--full{
  grid-column:1 / -1;
}
.admin-form-card__hint-inline{
  margin:0;
  align-self:end;
  font-size:13px;
  padding-bottom:8px;
}
.admin-form-card__checks{
  grid-column:1 / -1;
  display:flex;
  flex-wrap:wrap;
  gap:18px 24px;
  padding-top:4px;
}
.admin-form-card__field-hint{
  display:block;
  font-weight:normal;
  margin:0 0 4px;
  font-size:12px;
  line-height:1.4;
}
.admin-form-card__current{
  padding:12px 14px;
  border-radius:10px;
  background:#F4EEE3;
  border:1px solid var(--border);
}
.admin-form-card__current-label{
  display:block;
  font-size:12px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--muted);
  margin-bottom:6px;
}
.admin-form-card__current-path{
  font-size:13px;
  word-break:break-word;
  color:#374151;
  line-height:1.4;
  margin-bottom:8px;
}
.admin-form-card__preview-img{
  display:block;
  max-width:220px;
  height:auto;
  margin-top:4px;
  border:1px solid var(--border);
  border-radius:8px;
}
.admin-form-card__resource-link{
  font-size:13px;
  display:inline-block;
  margin-top:2px;
}
.admin-form-card__quitar{
  padding-top:4px;
  border-top:1px dashed var(--border);
  margin-top:4px;
}
.admin-form-subcard{
  margin-top:18px;
  padding-top:16px;
  border-top:1px solid var(--border);
}
.admin-form-subcard:first-of-type{
  margin-top:0;
  padding-top:0;
  border-top:none;
}
.admin-form-subcard__title{
  font-size:13px;
  font-weight:600;
  margin:0 0 12px;
  color:var(--muted);
}
.admin-form-card__actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:center;
}
/* Panel secundario: relacionados */
.admin-secondary-panel{
  margin-top:32px;
  padding:20px 20px 22px;
  border:1px solid var(--border);
  border-radius:12px;
  background:rgba(249,250,251,.85);
  max-width:52rem;
}
.admin-secondary-panel__title{
  font-size:16px;
  font-weight:600;
  margin:0 0 8px;
  color:#374151;
}
.admin-secondary-panel__hint{
  margin:0 0 14px;
  max-width:40rem;
  font-size:13px;
  line-height:1.45;
}
.admin-form--relacionados{
  margin-top:0;
}
/* Listado productos */
.admin-listado-block{
  margin-top:40px;
  padding-top:28px;
  border-top:1px solid var(--border);
}
.admin-listado-block__title{
  font-size:18px;
  font-weight:600;
  margin:0 0 6px;
}
.admin-listado-block__hint{
  margin:0 0 14px;
  font-size:13px;
}
/* Admin productos cat?logo (Fase 7 UX) */
.admin-productos-page > h1{
  margin-bottom:6px;
}
.admin-product-form{
  margin-top:8px;
  padding-bottom:8px;
}
.admin-product-form__header{
  margin-bottom:18px;
  max-width:52rem;
}
.admin-product-form__title{
  font-size:20px;
  font-weight:600;
  margin:0 0 8px;
  letter-spacing:-0.02em;
}
.admin-product-form__lead{
  margin:0 0 12px;
  font-size:14px;
  line-height:1.45;
  color:var(--muted);
  max-width:42rem;
}
.admin-product-form__mode{
  margin:0;
  padding:10px 14px;
  border-radius:10px;
  font-size:14px;
  line-height:1.4;
}
.admin-product-form__mode--edit{
  background:#fffbeb;
  border:1px solid rgba(180,83,9,.22);
  color:#92400e;
}
.admin-product-form__mode--new{
  background:#ecfdf5;
  border:1px solid rgba(5,150,105,.22);
  color:#047857;
}
.admin-product-form-section--relacionados{
  margin-top:8px;
}
.admin-product-form-actions-card .admin-form-card__title{
  border-bottom:none;
  padding-bottom:0;
  margin-bottom:12px;
}
.admin-product-form-actions{
  gap:10px 14px;
}
.admin-product-form-actions__submit{
  min-width:10rem;
}
.admin-product-list{
  margin-top:36px;
}
.admin-product-list__lead{
  max-width:44rem;
  margin:0 0 10px;
  font-size:14px;
  color:var(--muted);
}
.admin-product-list__filter-hint{
  margin-top:0;
}
.admin-productos-table .admin-product-name{
  display:inline;
  font-weight:600;
  color:#111827;
  font-size:15px;
}
.admin-productos-table .admin-product-destacado-mark{
  margin-left:6px;
  color:#b45309;
  font-size:14px;
}
.admin-productos-table tr.admin-product-row--destacado{
  background:linear-gradient(90deg, rgba(255,251,235,.55) 0%, #fff 28%);
}
.admin-productos-table tr.admin-product-row--inactivo{
  opacity:.88;
}
.admin-productos-table .admin-product-precio-usd{
  font-weight:600;
  color:#111827;
  white-space:nowrap;
}
.admin-productos-table .admin-product-precio-ars{
  font-size:14px;
  color:#374151;
  white-space:nowrap;
}
.admin-productos-table .admin-product-stock{
  font-weight:600;
}
.admin-productos-table .admin-product-stock--empty{
  color:#b91c1c;
}
.admin-productos-table .admin-product-stock-badge{
  display:inline-block;
  margin-left:8px;
  vertical-align:middle;
  font-size:11px;
  padding:3px 8px;
}
.admin-productos-table .admin-status-badge{
  font-size:12px;
  padding:5px 10px;
  white-space:nowrap;
}
.admin-productos-table .admin-product-orden{
  font-variant-numeric:tabular-nums;
  font-weight:600;
}
.admin-productos-table .admin-product-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px 10px;
  align-items:center;
  justify-content:flex-end;
}
.admin-productos-table .admin-product-actions__deactivate{
  margin:0;
}
.admin-productos-table th:nth-child(3),
.admin-productos-table th:nth-child(4),
.admin-productos-table td.admin-product-row__usd,
.admin-productos-table td.admin-product-row__ars{
  text-align:right;
}
.admin-productos-table th:nth-child(5),
.admin-productos-table td.admin-product-row__stock{
  text-align:center;
}
.admin-productos-table th:nth-child(8),
.admin-productos-table td.admin-product-row__orden{
  text-align:center;
}
@media (min-width:901px){
  .admin-productos-table-wrap,
  .admin-product-list__table-wrap{
    overflow-x:auto;
  }
}
@media (max-width:900px){
  .admin-product-list__table-wrap{
    overflow:visible;
    border:none;
    background:transparent;
    box-shadow:none;
  }
  .admin-productos-table{
    display:block;
    width:100%;
  }
  .admin-productos-table thead{
    display:none;
  }
  .admin-productos-table tbody{
    display:flex;
    flex-direction:column;
    gap:14px;
  }
  .admin-productos-table tr.admin-product-card{
    display:grid;
    grid-template-columns:1fr auto;
    grid-template-areas:
      "producto activo"
      "categoria categoria"
      "usd ars"
      "stock stock"
      "destacado orden"
      "action action";
    border:1px solid var(--border);
    border-radius:14px;
    background:var(--surface);
    box-shadow:0 1px 3px rgba(0,0,0,.06);
    overflow:hidden;
  }
  .admin-productos-table tr.admin-product-row--destacado{
    background:var(--surface);
    border-color:rgba(180,83,9,.28);
    box-shadow:0 1px 4px rgba(180,83,9,.12);
  }
  .admin-productos-table tr.admin-product-card td{
    display:block;
    width:100%;
    border:none;
    padding:0 16px 10px;
  }
  .admin-productos-table tr.admin-product-card td::before{
    display:block;
    margin-bottom:4px;
    font-size:11px;
    font-weight:600;
    letter-spacing:.04em;
    text-transform:uppercase;
    color:var(--muted);
    content:attr(data-label);
  }
  .admin-productos-table tr.admin-product-card td[data-label=""]::before{
    display:none;
  }
  .admin-productos-table tr.admin-product-card td.admin-product-row__producto{
    grid-area:producto;
    padding:14px 0 4px 16px;
  }
  .admin-productos-table tr.admin-product-card td.admin-product-row__producto::before{
    display:none;
  }
  .admin-productos-table tr.admin-product-card td.admin-product-row__activo{
    grid-area:activo;
    padding:14px 16px 4px 0;
    text-align:right;
  }
  .admin-productos-table tr.admin-product-card td.admin-product-row__activo::before{
    display:none;
  }
  .admin-productos-table tr.admin-product-card td.admin-product-row__categoria{
    grid-area:categoria;
    padding:0 16px 12px;
    border-bottom:1px solid var(--border);
    margin-bottom:4px;
  }
  .admin-productos-table tr.admin-product-card td.admin-product-row__categoria::before{
    display:none;
  }
  .admin-productos-table tr.admin-product-card td.admin-product-row__usd{
    grid-area:usd;
    padding-top:12px;
    text-align:left;
  }
  .admin-productos-table tr.admin-product-card td.admin-product-row__ars{
    grid-area:ars;
    padding-top:12px;
    text-align:right;
  }
  .admin-productos-table tr.admin-product-card td.admin-product-row__stock{
    grid-area:stock;
    text-align:left;
  }
  .admin-productos-table tr.admin-product-card td.admin-product-row__destacado{
    grid-area:destacado;
    padding-bottom:12px;
  }
  .admin-productos-table tr.admin-product-card td.admin-product-row__orden{
    grid-area:orden;
    padding-bottom:12px;
    text-align:right;
  }
  .admin-productos-table tr.admin-product-card td.admin-product-row__action{
    grid-area:action;
    padding:12px 16px 16px;
    border-top:1px solid var(--border);
  }
  .admin-productos-table .admin-product-actions{
    justify-content:stretch;
  }
  .admin-productos-table .admin-product-actions__edit,
  .admin-productos-table .admin-product-actions__danger{
    flex:1 1 auto;
    justify-content:center;
    text-align:center;
  }
  .admin-productos-table .admin-product-destacado-mark{
    display:none;
  }
}
/* Admin CRUD secundario (Fase 8 UX) */
.admin-crud-page > h1,
.admin-config-page > h1,
.admin-media-audit-page > h1{
  margin-bottom:6px;
}
.admin-crud-form{
  margin-top:8px;
  margin-bottom:8px;
}
.admin-crud-form__header{
  margin-bottom:18px;
  max-width:52rem;
}
.admin-crud-form__title{
  font-size:20px;
  font-weight:600;
  margin:0 0 8px;
  letter-spacing:-0.02em;
}
.admin-crud-form__lead{
  margin:0 0 12px;
  font-size:14px;
  line-height:1.45;
  color:var(--muted);
  max-width:42rem;
}
.admin-crud-form__mode{
  margin:0;
  padding:10px 14px;
  border-radius:10px;
  font-size:14px;
  line-height:1.4;
}
.admin-crud-form__mode--edit{
  background:#fffbeb;
  border:1px solid rgba(180,83,9,.22);
  color:#92400e;
}
.admin-crud-form__mode--new{
  background:#ecfdf5;
  border:1px solid rgba(5,150,105,.22);
  color:#047857;
}
.admin-crud-form__form{
  display:flex;
  flex-direction:column;
  gap:18px;
  max-width:52rem;
}
.admin-crud-form__form.admin-form--grid{
  display:flex;
  flex-direction:column;
  grid-template-columns:unset;
}
.admin-crud-form__actions-card .admin-form-card__title{
  border-bottom:none;
  padding-bottom:0;
  margin-bottom:12px;
}
.admin-crud-list__lead{
  max-width:44rem;
  margin:0 0 12px;
  font-size:14px;
}
.admin-crud-name{
  display:block;
  font-weight:600;
  font-size:15px;
  color:#111827;
}
.admin-crud-meta{
  display:block;
  margin-top:3px;
  font-size:13px;
}
.admin-crud-code{
  font-size:12px;
  word-break:break-word;
}
.admin-crud-orden{
  font-variant-numeric:tabular-nums;
  font-weight:600;
}
.admin-crud-norm-mobile{
  display:none;
}
.admin-crud-table tr.admin-crud-row--inactivo{
  opacity:.88;
}
.admin-crud-table .admin-status-badge{
  font-size:12px;
  padding:5px 10px;
  white-space:nowrap;
}
.admin-crud-table .admin-crud-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px 10px;
  align-items:center;
  justify-content:flex-end;
}
.admin-crud-table--subcategorias .admin-crud-row__nombre .admin-crud-meta{
  display:none;
}
.admin-config-page .admin-config-help{
  max-width:52rem;
  margin-bottom:18px;
}
.admin-config-help__list{
  margin:0;
  padding-left:1.2rem;
  font-size:14px;
  line-height:1.55;
  color:#374151;
}
.admin-config-form{
  display:flex;
  flex-direction:column;
  gap:18px;
  max-width:52rem;
}
.admin-config-form__actions .admin-form-card__title{
  border-bottom:none;
  padding-bottom:0;
  margin-bottom:12px;
}
.admin-media-audit-page__nav{
  margin:0 0 16px;
}
.admin-media-meta{
  display:none;
  margin-top:6px;
  font-size:12px;
}
.admin-media-estado-hint{
  display:block;
  margin-top:4px;
  font-size:12px;
}
.admin-media-productos-list{
  margin:0;
  padding:0;
  list-style:none;
}
.admin-media-productos-list li + li{
  margin-top:6px;
}
.admin-media-filename{
  display:block;
  font-size:13px;
}
.admin-media-audit-details{
  max-width:52rem;
  margin-top:28px;
}
@media (min-width:901px){
  .admin-crud-list__table-wrap{
    overflow-x:auto;
  }
  .admin-crud-table th:last-child,
  .admin-crud-table td.admin-crud-row__action{
    text-align:right;
  }
}
@media (max-width:900px){
  .admin-crud-list__table-wrap{
    overflow:visible;
    border:none;
    background:transparent;
    box-shadow:none;
  }
  .admin-crud-table{
    display:block;
    width:100%;
  }
  .admin-crud-table thead{
    display:none;
  }
  .admin-crud-table tbody{
    display:flex;
    flex-direction:column;
    gap:14px;
  }
  .admin-crud-table tr.admin-crud-card{
    display:grid;
    border:1px solid var(--border);
    border-radius:14px;
    background:var(--surface);
    box-shadow:0 1px 3px rgba(0,0,0,.06);
    overflow:hidden;
  }
  .admin-crud-table tr.admin-crud-card td{
    display:block;
    width:100%;
    border:none;
    padding:0 16px 10px;
  }
  .admin-crud-table tr.admin-crud-card td::before{
    display:block;
    margin-bottom:4px;
    font-size:11px;
    font-weight:600;
    letter-spacing:.04em;
    text-transform:uppercase;
    color:var(--muted);
    content:attr(data-label);
  }
  .admin-crud-table tr.admin-crud-card td[data-label=""]::before{
    display:none;
  }
  .admin-crud-table tr.admin-crud-card td.admin-crud-row__action{
    padding:12px 16px 16px;
    border-top:1px solid var(--border);
  }
  .admin-crud-table .admin-crud-actions{
    justify-content:stretch;
  }
  .admin-crud-table .admin-crud-actions .btn{
    flex:1 1 auto;
    justify-content:center;
    text-align:center;
  }
  /* Categor?as */
  .admin-crud-table--categorias tr.admin-crud-card{
    grid-template-columns:1fr auto;
    grid-template-areas:
      "nombre activo"
      "orden slug"
      "action action";
  }
  .admin-crud-table--categorias td.admin-crud-row__nombre{
    grid-area:nombre;
    padding:14px 0 4px 16px;
  }
  .admin-crud-table--categorias td.admin-crud-row__nombre::before,
  .admin-crud-table--categorias td.admin-crud-row__activo::before{
    display:none;
  }
  .admin-crud-table--categorias td.admin-crud-row__activo{
    grid-area:activo;
    padding:14px 16px 4px 0;
    text-align:right;
  }
  .admin-crud-table--categorias td.admin-crud-row__orden{
    grid-area:orden;
    padding-top:10px;
  }
  .admin-crud-table--categorias td.admin-crud-row__slug{
    grid-area:slug;
    padding-top:10px;
    text-align:right;
  }
  .admin-crud-table--categorias td.admin-crud-row__action{
    grid-area:action;
  }
  /* Subcategor?as */
  .admin-crud-table--subcategorias tr.admin-crud-card{
    grid-template-columns:1fr auto;
    grid-template-areas:
      "nombre activo"
      "orden orden"
      "action action";
  }
  .admin-crud-table--subcategorias td.admin-crud-row__nombre{
    grid-area:nombre;
    padding:14px 0 4px 16px;
  }
  .admin-crud-table--subcategorias td.admin-crud-row__nombre .admin-crud-meta{
    display:block;
  }
  .admin-crud-table--subcategorias td.admin-crud-row__nombre::before,
  .admin-crud-table--subcategorias td.admin-crud-row__activo::before{
    display:none;
  }
  .admin-crud-table--subcategorias td.admin-crud-row__activo{
    grid-area:activo;
    padding:14px 16px 4px 0;
    text-align:right;
  }
  .admin-crud-table--subcategorias td.admin-crud-row__categoria{
    display:none;
  }
  .admin-crud-table--subcategorias td.admin-crud-row__orden{
    grid-area:orden;
    padding-top:10px;
  }
  .admin-crud-table--subcategorias td.admin-crud-row__slug{
    display:none;
  }
  .admin-crud-table--subcategorias td.admin-crud-row__action{
    grid-area:action;
  }
  /* Zonas */
  .admin-crud-norm-mobile{
    display:block;
  }
  .admin-crud-table--zonas tr.admin-crud-card{
    grid-template-columns:1fr auto;
    grid-template-areas:
      "nombre activo"
      "orden orden"
      "action action";
  }
  .admin-crud-table--zonas td.admin-crud-row__nombre{
    grid-area:nombre;
    padding:14px 0 4px 16px;
  }
  .admin-crud-table--zonas td.admin-crud-row__nombre::before,
  .admin-crud-table--zonas td.admin-crud-row__activo::before{
    display:none;
  }
  .admin-crud-table--zonas td.admin-crud-row__activo{
    grid-area:activo;
    padding:14px 16px 4px 0;
    text-align:right;
  }
  .admin-crud-table--zonas td.admin-crud-row__norm{
    display:none;
  }
  .admin-crud-table--zonas td.admin-crud-row__orden{
    grid-area:orden;
    padding:10px 16px 12px;
    border-bottom:1px solid var(--border);
  }
  .admin-crud-table--zonas td.admin-crud-row__action{
    grid-area:action;
  }
  /* Im?genes uploads */
  .admin-media-meta{
    display:block;
  }
  .admin-media-table tr.admin-crud-card{
    grid-template-columns:1fr auto;
    grid-template-areas:
      "archivo estado"
      "productos productos"
      "action action";
  }
  .admin-media-table td.admin-media-row__archivo{
    grid-area:archivo;
    padding:14px 0 4px 16px;
  }
  .admin-media-table td.admin-media-row__archivo::before,
  .admin-media-table td.admin-media-row__estado::before{
    display:none;
  }
  .admin-media-table td.admin-media-row__estado{
    grid-area:estado;
    padding:14px 16px 4px 0;
    text-align:right;
  }
  .admin-media-table td.admin-media-row__size,
  .admin-media-table td.admin-media-row__mtime{
    display:none;
  }
  .admin-media-table td.admin-media-row__productos{
    grid-area:productos;
    padding:0 16px 12px;
    border-bottom:1px solid var(--border);
  }
  .admin-media-table td.admin-media-row__action{
    grid-area:action;
  }
  .admin-media-table--rotas tr.admin-crud-card{
    grid-template-columns:1fr;
    grid-template-areas:
      "ruta"
      "productos";
  }
  .admin-media-table--rotas td.admin-media-row__ruta{
    grid-area:ruta;
    padding:14px 16px 8px;
  }
  .admin-media-table--rotas td.admin-media-row__productos{
    grid-area:productos;
    padding:0 16px 14px;
  }
}
.admin-panel-group + .admin-panel-group{
  margin-top:20px;
}
@media (min-width:901px){
  /* Panel index: solo acorta el largo (ancho) de la columna; altura de filas = .admin-link-list global */
  .admin-panel.admin-panel--index{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    max-width:100%;
  }
  .admin-panel.admin-panel--index > h1,
  .admin-panel.admin-panel--index > .sub{
    flex:0 0 auto;
    width:min(300px,100%);
    max-width:300px;
    box-sizing:border-box;
  }
  .admin-panel.admin-panel--index .admin-panel-group{
    flex:0 0 auto;
    width:min(300px,100%);
    max-width:300px;
    box-sizing:border-box;
  }
  .admin-panel.admin-panel--index .admin-link-list{
    width:100%;
    max-width:300px;
  }
}
.admin-panel-group__title{
  font-size:14px;
  font-weight:600;
  letter-spacing:normal;
  text-transform:none;
  color:var(--muted);
  margin:0 0 10px;
}
.admin-dashboard{
  display:flex;
  flex-direction:column;
  gap:22px;
}
.admin-home{
  gap:20px;
}
.admin-home .admin-panel__head{
  margin-bottom:10px;
}
.admin-home .admin-panel__head h1{
  margin:0 0 6px;
}
.admin-home .admin-page-head__lead{
  margin:0;
}
.admin-home__section--actions{
  gap:10px;
  margin-top:0;
}
.admin-home__section-lead{
  margin:0;
  font-size:14px;
  line-height:1.45;
  color:var(--muted);
  max-width:40rem;
}
.admin-home__section-lead--meta{
  font-size:13px;
}
.admin-home__fallback{
  margin:0;
  font-size:14px;
  line-height:1.45;
}
.admin-home__fallback a{
  font-weight:600;
  color:var(--brand);
}
.admin-action-card .admin-action-card__btn{
  margin-top:auto;
  align-self:flex-start;
  text-decoration:none;
}
.admin-action-card .admin-action-card__btn:hover{
  text-decoration:none;
}
.admin-dashboard-card a.admin-action-card__btn.btn-primary{
  color:#fff;
}
.admin-dashboard-card a.admin-action-card__btn.btn-primary:hover,
.admin-dashboard-card a.admin-action-card__btn.btn-primary:focus-visible{
  color:#fff;
}
.admin-dashboard-card a.admin-action-card__btn.btn-ghost{
  color:var(--text);
}
.admin-dashboard-card a.admin-action-card__btn.btn-ghost:hover{
  color:var(--text);
}
.admin-home__status{
  grid-template-columns:repeat(auto-fill, minmax(180px, 1fr));
}
.admin-home-metric{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:14px 16px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--surface);
  box-shadow:0 1px 2px rgba(0,0,0,.04);
  text-decoration:none;
  color:inherit;
  transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.admin-home-metric:hover{
  border-color:rgba(119,155,115,.28);
  background:rgba(119,155,115,.03);
  box-shadow:0 2px 8px rgba(119,155,115,.08);
}
.admin-home-metric:focus-visible{
  outline:2px solid var(--brand);
  outline-offset:2px;
}
.admin-home-metric__label{
  font-size:11px;
  font-weight:700;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--muted);
}
.admin-home-metric__value{
  font-size:clamp(18px, 2vw, 22px);
  font-weight:700;
  letter-spacing:-0.02em;
  color:var(--text);
}
.admin-home-metric__meta{
  font-size:13px;
  line-height:1.4;
  color:#4b5563;
}
.admin-home-tips{
  margin:0;
  padding:14px 16px 14px 20px;
  border:1px solid var(--border);
  border-left:3px solid rgba(119,155,115,.45);
  border-radius:12px;
  background:var(--surface);
  font-size:14px;
  line-height:1.5;
  color:#4b5563;
  max-width:40rem;
}
.admin-home-tips li + li{
  margin-top:8px;
}
.admin-dashboard-section{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.admin-dashboard-section__title{
  font-size:16px;
  font-weight:600;
  color:#374151;
  margin:0;
}
.admin-dashboard-subtitle{
  font-size:14px;
  font-weight:600;
  color:var(--muted);
  margin:0 0 12px;
  letter-spacing:.02em;
}
.admin-dashboard-more{
  margin:14px 0 0;
  font-size:13px;
  color:var(--muted);
  line-height:1.5;
}
.admin-dashboard-more a{
  font-weight:600;
  color:var(--brand);
  text-decoration:none;
}
.admin-dashboard-more a:hover{
  text-decoration:underline;
}
.admin-dashboard-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
}
.admin-dashboard-grid--quick{
  grid-template-columns:repeat(auto-fill, minmax(200px, 1fr));
}
.admin-dashboard-card{
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--surface);
  padding:14px 16px;
  box-shadow:0 1px 2px rgba(0,0,0,.04);
  display:flex;
  flex-direction:column;
  gap:10px;
}
.admin-dashboard-card h3{
  margin:0;
  font-size:16px;
  font-weight:600;
  color:var(--text);
}
.admin-dashboard-card p{
  margin:0;
  font-size:14px;
  line-height:1.45;
  color:#4b5563;
}
.admin-dashboard-card a{
  margin-top:auto;
  display:inline-flex;
  align-items:center;
  font-size:14px;
  font-weight:600;
  color:var(--brand);
  text-decoration:none;
}
.admin-dashboard-card a:hover{
  text-decoration:underline;
}
@media (max-width:900px){
  .admin-dashboard-grid{
    grid-template-columns:1fr;
  }
}

/* Estad?sticas admin (admin/estadisticas.php): m?tricas m?s legibles sin redise?o global */
.admin-stats .admin-hint{
  margin-bottom:20px;
}
.admin-panel.admin-stats > h2{
  margin:28px 0 8px;
}
.admin-panel.admin-stats > h1 + .admin-hint + h2{
  margin-top:22px;
}
.admin-panel.admin-stats > h2 + p.admin-muted,
.admin-stats .admin-stats__section-lead{
  margin:0 0 16px;
  max-width:68ch;
  color:var(--muted);
  font-size:14px;
  line-height:1.5;
}
.admin-stats__grid{
  margin-bottom:12px;
}
.admin-stats-metric__value{
  font-size:clamp(20px, 2.2vw, 26px);
  font-weight:700;
  color:var(--text);
  letter-spacing:-0.02em;
  line-height:1.2;
}
.admin-stats-metric__hint{
  margin:0 !important;
  font-size:12px !important;
  line-height:1.4 !important;
}

.admin-alert{
  padding:12px 14px;
  border-radius:10px;
  background:rgba(119,155,115,.1);
  color:#14532d;
  margin:12px 0;
  font-size:14px;
}
.admin-alert--error{
  background:#fef2f2;
  color:#991b1b;
}
.admin-alert--ok{
  background:#ecfdf5;
  color:#047857;
  border:1px solid rgba(4,120,87,.22);
}
.admin-form{
  display:flex;
  flex-direction:column;
  gap:14px;
  max-width:520px;
  margin-top:12px;
}
.admin-form--grid{
  max-width:100%;
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(240px, 1fr));
  gap:14px 20px;
  align-items:start;
}
.admin-form label{
  display:flex;
  flex-direction:column;
  gap:6px;
  font-size:14px;
  color:#374151;
}
.admin-form input,
.admin-form textarea,
.admin-form select{
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:10px;
  font-family:inherit;
  font-size:15px;
}
.admin-span-2{ grid-column:1 / -1; }
.admin-check{
  flex-direction:row !important;
  align-items:center;
  gap:10px !important;
}
.admin-productos-limpieza__checks{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin:12px 0 16px;
  max-width:min(720px, 100%);
}
.admin-productos-limpieza__check span{
  line-height:1.4;
}
.admin-productos-limpieza__preview-form,
.admin-productos-limpieza__apply-form{
  margin-top:20px;
  padding-top:16px;
  border-top:1px solid var(--border);
}
.admin-table-wrap{
  overflow-x:auto;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--surface);
}
.admin-table{
  width:100%;
  border-collapse:collapse;
  font-size:14px;
}
.admin-table th,
.admin-table td{
  padding:10px 12px;
  border-bottom:1px solid var(--border);
  text-align:left;
  vertical-align:top;
}
.admin-table tr:last-child td{ border-bottom:0; }
.admin-table code{ font-size:13px; }
.admin-actions{
  white-space:nowrap;
}
.admin-actions > *{
  margin-right:8px;
}
.admin-actions > *:last-child{
  margin-right:0;
}
.admin-inline-form{ display:inline; }
.admin-actions > a,
.admin-actions .link-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 12px;
  border-radius:10px;
  border:1px solid var(--border);
  background:var(--surface);
  color:var(--text);
  text-decoration:none;
  font-size:13px;
  font-weight:600;
  line-height:1.2;
  transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.admin-actions .link-button{
  cursor:pointer;
}
.admin-actions > a:hover,
.admin-actions .link-button:hover{
  border-color:rgba(119,155,115,.35);
  color:var(--text);
  box-shadow:0 10px 24px rgba(0,0,0,.05);
  transform:translateY(-1px);
}
.admin-actions > a:focus-visible,
.admin-actions .link-button:focus-visible{
  outline:2px solid rgba(119,155,115,.35);
  outline-offset:2px;
}
.admin-actions .link-button--danger{
  color:#991b1b;
  border-color:rgba(153,27,27,.28);
  background:var(--surface);
}
.admin-actions .link-button--danger:hover{
  color:#7f1d1d;
  border-color:rgba(127,29,29,.45);
  background:#fef2f2;
  box-shadow:0 8px 20px rgba(127,29,29,.08);
}
.admin-link-list{
  list-style:none;
  margin:16px 0 0;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:12px;
  font-size:16px;
}
.admin-link-list li{
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--surface);
  padding:12px 14px;
  line-height:1.45;
  color:#374151;
  transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.admin-link-list li:hover{
  border-color:rgba(119,155,115,.3);
  box-shadow:0 10px 24px rgba(0,0,0,.05);
  transform:translateY(-1px);
}
.admin-link-list a{
  color:var(--brand);
  text-decoration:none;
  font-weight:700;
}
.admin-link-list a:hover{ text-decoration:underline; }

.admin-hint{
  font-size:13px;
  color:var(--muted);
  line-height:1.5;
  margin:0;
}
.admin-back-button{
  margin:0 0 18px;
}
.admin-pedido-detail__actions-top,
.admin-venta-detail__actions-top{
  display:flex;
  flex-wrap:wrap;
  gap:10px 12px;
  align-items:center;
  margin:0 0 18px;
}
.admin-pedido-detail__actions-top .admin-back-button,
.admin-venta-detail__actions-top .admin-back-button{
  margin:0;
}
@media (max-width:640px){
  .admin-pedido-detail__actions-top .btn,
  .admin-venta-detail__actions-top .btn{
    flex:1 1 calc(50% - 6px);
    justify-content:center;
  }
}
.admin-back-button--between{
  margin:10px 0 10px;
}
@media (max-width:640px){
  .admin-back-button{
    width:100%;
    justify-content:center;
  }
}
.admin-help--prominent{
  background:#F4EEE3;
  border:1px solid rgba(119,155,115,.2);
  border-radius:12px;
  padding:16px 18px;
  margin:16px 0 24px;
  font-size:14px;
  line-height:1.55;
  color:#374151;
}
.admin-help--prominent ul{
  margin:10px 0 0 1.1em;
  padding:0;
}
.admin-help--prominent li{ margin:6px 0; }
.admin-help--prominent p{ margin:0 0 8px; }

.admin-muted{ color:var(--muted); font-size:14px; }
.admin-code-quiet{ font-size:12px; font-weight:400; color:var(--muted); margin-left:6px; }
.admin-filter-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  align-self:end;
}
.admin-form--filters{
  margin-bottom:24px;
  padding-bottom:20px;
  border-bottom:1px solid var(--border);
}
.admin-form--inline-filters{
  flex-direction:row;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:16px 24px;
  max-width:100%;
}
.admin-form--inline-filters > label{
  margin-bottom:0;
}
.admin-form--inline-filters .admin-filter-actions{
  align-self:flex-end;
  margin-top:0;
}
.admin-pedido-meta h2{ margin-top:24px; }
.admin-dl{
  display:grid;
  grid-template-columns:minmax(120px, 200px) 1fr;
  gap:8px 20px;
  margin:12px 0 0;
  font-size:15px;
}
.admin-dl dt{
  margin:0;
  color:var(--muted);
  font-weight:500;
}
.admin-dl dd{ margin:0; }
.admin-table--pedido-items th,
.admin-table--pedido-items td{ font-size:14px; }

/* Detalle pedido admin: jerarqu?a visual (solo presentaci?n) */
.admin-pedido-detail .admin-pedido-meta{
  max-width:960px;
}
.admin-pedido-hero{
  margin:8px 0 24px;
  padding:20px 22px;
  border:1px solid var(--border);
  border-radius:14px;
  background:linear-gradient(180deg, #FCF9F3 0%, #FCF9F3 100%);
}
.admin-pedido-hero__code{
  font-size:clamp(20px, 2.5vw, 26px);
  font-weight:700;
  letter-spacing:-0.02em;
  margin:0 0 10px;
}
.admin-pedido-hero__code code{
  font-size:inherit;
  font-weight:inherit;
  background:transparent;
  padding:0;
}
.admin-pedido-hero__row{
  display:flex;
  flex-wrap:wrap;
  gap:12px 20px;
  align-items:baseline;
  font-size:15px;
  color:#374151;
}
.admin-pedido-hero__total{
  font-weight:700;
  font-size:17px;
  color:#111827;
}
.admin-pedido-hero__badges{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:14px;
}
.admin-status-badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 12px;
  border-radius:999px;
  font-size:13px;
  font-weight:600;
  border:1px solid var(--border);
  background:var(--surface);
  color:#374151;
}
.admin-status-badge code{
  font-size:11px;
  font-weight:500;
  opacity:.85;
}
.admin-status-badge--operativo{
  background:#F4EEE3;
  border-color:rgba(14,116,144,.25);
  color:#0c4a6e;
}
.admin-status-badge--operativo-muted{
  background:#F4EEE3;
  color:#6b7280;
}
.admin-status-badge--ok{
  background:#ecfdf5;
  border-color:rgba(5,150,105,.28);
  color:#047857;
}
.admin-status-badge--warning{
  background:#fffbeb;
  border-color:rgba(180,83,9,.28);
  color:#92400e;
}
.admin-status-badge--danger{
  background:#fef2f2;
  border-color:rgba(185,28,28,.22);
  color:#b91c1c;
}
.admin-status-badge--muted{
  background:#F4EEE3;
  border-color:var(--border);
  color:#6b7280;
}
.admin-status-badge--mp{
  max-width:100%;
}

/* Vencimientos / lotes (solo admin) */
.admin-venc-badge{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:4px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:600;
  border:1px solid var(--border);
  white-space:nowrap;
}
.admin-venc-badge__icon{
  font-weight:800;
  line-height:1;
}
.admin-venc-badge--vencido{
  background:#7f1d1d;
  border-color:#450a0a;
  color:#fff;
}
.admin-venc-badge--critico{
  background:#fef2f2;
  border-color:rgba(185,28,28,.35);
  color:#b91c1c;
}
.admin-venc-badge--atencion{
  background:#fffbeb;
  border-color:rgba(180,83,9,.28);
  color:#92400e;
}
.admin-venc-badge--ok{
  background:#ecfdf5;
  border-color:rgba(5,150,105,.28);
  color:#047857;
}
.admin-venc-list-meta{
  display:block;
  font-size:12px;
  color:#6b7280;
  margin-bottom:4px;
}
.admin-venc-stock-warn{
  color:#92400e;
  font-size:13px;
  margin:0 0 12px;
  padding:8px 12px;
  background:#fffbeb;
  border:1px solid rgba(180,83,9,.2);
  border-radius:8px;
}
.admin-vencimientos-block .admin-vencimientos-table-wrap{
  margin-bottom:16px;
}
.admin-vencimientos-form-card{
  margin-top:8px;
}
.admin-home-vencimientos .admin-home-venc__stat--vencido .admin-home-metric__value{
  color:#b91c1c;
}
.admin-home-vencimientos .admin-home-venc__stat--critico .admin-home-metric__value{
  color:#dc2626;
}
.admin-home-vencimientos .admin-home-venc__stat--atencion .admin-home-metric__value{
  color:#d97706;
}
.admin-home-vencimientos .admin-home-venc__stat--ok .admin-home-metric__value{
  color:#047857;
}
.admin-home-venc__table-wrap{
  margin-top:16px;
}

.admin-pedido-block{
  margin:0 0 28px;
  padding:0 0 22px;
  border-bottom:1px solid var(--border);
}
.admin-pedido-block:last-of-type{
  border-bottom:0;
  padding-bottom:0;
}
.admin-pedido-detail__title{
  font-size:17px;
  font-weight:700;
  margin:0 0 14px;
  color:#111827;
}
.admin-pedido-detail .admin-pedido-meta h2.admin-pedido-detail__title{
  margin:22px 0 14px;
}
.admin-pedido-mov-detalle-cell{
  max-width:28rem;
  min-width:12rem;
  word-break:break-word;
}

.admin-summary-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(180px, 1fr));
  gap:12px;
  margin:0 0 20px;
}
.admin-summary-grid > .admin-summary-card{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:14px 16px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--surface);
  box-shadow:0 1px 2px rgba(0,0,0,.04);
}
.admin-summary-card{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
}
@media (max-width:640px){
  .admin-summary-card{ grid-template-columns:1fr; }
}
.admin-summary-card__cell{
  padding:14px 16px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--surface);
  font-size:14px;
  line-height:1.45;
}
.admin-summary-card__label{
  display:block;
  font-size:12px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--muted);
  margin:0 0 6px;
}
.admin-summary-card__value{
  margin:0;
  color:#111827;
  font-weight:600;
}
.admin-summary-card__value code{
  font-size:12px;
  font-weight:500;
}

.admin-detail-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px 24px;
  margin:12px 0 0;
  font-size:15px;
}
@media (max-width:720px){
  .admin-detail-grid{ grid-template-columns:1fr; }
}
.admin-detail-grid__pair{
  margin:0;
  padding:10px 0;
  border-bottom:1px solid rgba(0,0,0,.06);
}
.admin-detail-grid__pair dt{
  margin:0 0 4px;
  font-size:12px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.03em;
  color:var(--muted);
}
.admin-detail-grid__pair dd{
  margin:0;
  color:#1f2937;
  word-break:break-word;
}

.admin-pedido-badge{
  display:inline-block;
  padding:3px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.02em;
}
.admin-pedido-badge--si{
  background:#ecfdf5;
  color:#047857;
  border:1px solid rgba(4,120,87,.2);
}
.admin-pedido-badge--no{
  background:#F4EEE3;
  color:#6b7280;
  border:1px solid var(--border);
}

.admin-stock-panel .admin-dl{
  margin-top:8px;
}
.admin-importes-panel .admin-dl{
  margin-top:8px;
}
.admin-importes-panel .admin-dl dd.admin-pedido-total-dd{
  font-size:18px;
  font-weight:800;
  color:#111827;
}

.admin-technical-box{
  padding:14px 16px;
  border-radius:12px;
  background:#F4EEE3;
  border:1px dashed var(--border);
  font-size:13px;
  color:#6b7280;
}
.admin-technical-box .admin-dl{
  margin:0;
  gap:6px 16px;
  font-size:13px;
}
.admin-technical-box .admin-dl dt{ color:#9ca3af; }
.admin-technical-box .admin-dl dd{ color:#4b5563; }

.admin-pedido-callout{
  padding:14px 16px;
  border-radius:12px;
  background:#fffbeb;
  border:1px solid rgba(180,83,9,.22);
  margin:0 0 16px;
  font-size:14px;
  line-height:1.55;
  color:#78350f;
}
.admin-pedido-callout--muted{
  background:#F4EEE3;
  border:1px solid var(--border);
  color:#4b5563;
}
.admin-pedido-callout p{ margin:0 0 8px; }
.admin-pedido-callout p:last-child{ margin-bottom:0; }

.admin-pedido-form-card .admin-form textarea{
  min-height:120px;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}

.admin-pedido-table-scroll{
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  margin-top:8px;
}
.admin-pedido-table-scroll .admin-table{
  min-width:520px;
}
.admin-pedido-movimientos .admin-table{
  min-width:640px;
}

.admin-pedido-movtipo-badge{
  display:inline-block;
  padding:4px 10px;
  border-radius:8px;
  font-size:12px;
  font-weight:700;
  text-transform:none;
}
.admin-pedido-movtipo--descuento{
  background:#fef2f2;
  color:#b91c1c;
  border:1px solid rgba(185,28,28,.2);
}
.admin-pedido-movtipo--restauracion{
  background:#ecfdf5;
  color:#047857;
  border:1px solid rgba(4,120,87,.2);
}
.admin-pedido-movtipo--other{
  background:#F4EEE3;
  color:#374151;
  border:1px solid var(--border);
}

.admin-pedido-qty{
  font-variant-numeric:tabular-nums;
  font-weight:700;
}
.admin-pedido-qty--neg{ color:#b91c1c; }
.admin-pedido-qty--pos{ color:#047857; }

.admin-pedido-factura-lead{
  font-size:14px;
  line-height:1.5;
  margin:0 0 14px;
  max-width:62ch;
}
.admin-pedido-factura-destacado{
  display:inline-block;
  margin:0 0 12px;
  padding:8px 14px;
  border-radius:10px;
  background:#F4EEE3;
  border:1px solid rgba(37,99,235,.2);
  font-weight:700;
  font-size:15px;
  color:#1e3a8a;
}

/* Detalle pedido: resumen fijo y secciones colapsables */
.admin-pedido-resumen__cliente{
  margin:10px 0 0;
  font-size:15px;
  line-height:1.45;
}
.admin-pedido-resumen__badges{
  align-items:center;
}
.admin-pedido-resumen__badges .admin-pedido-badge{
  font-size:12px;
  padding:5px 10px;
}
.admin-pedido-visible{
  margin-bottom:8px;
}
.admin-pedido-visible > .admin-pedido-block:last-child{
  border-bottom:1px solid var(--border);
  padding-bottom:22px;
}
.admin-details.admin-pedido-details{
  margin:0 0 12px;
  border:1px solid var(--border);
  border-radius:14px;
  background:var(--surface);
  box-shadow:0 1px 2px rgba(0,0,0,.04);
  overflow:hidden;
}
.admin-details.admin-pedido-details:last-of-type{
  margin-bottom:0;
}
.admin-details summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:48px;
  padding:14px 18px;
  font-size:15px;
  font-weight:700;
  color:#111827;
  cursor:pointer;
  list-style:none;
  user-select:none;
  -webkit-tap-highlight-color:transparent;
}
.admin-details summary::-webkit-details-marker{
  display:none;
}
.admin-details summary::after{
  content:"";
  flex-shrink:0;
  width:10px;
  height:10px;
  border-right:2px solid #6b7280;
  border-bottom:2px solid #6b7280;
  transform:rotate(45deg);
  margin-top:-4px;
  transition:transform .15s ease, margin .15s ease;
}
.admin-details[open] summary{
  border-bottom:1px solid var(--border);
  background:#FCF9F3;
}
.admin-details[open] summary::after{
  transform:rotate(-135deg);
  margin-top:4px;
}
.admin-details__body{
  padding:4px 18px 18px;
}
.admin-pedido-block--nested{
  margin-bottom:22px;
  padding-bottom:0;
  border-bottom:0;
}
.admin-pedido-block--nested:last-child{
  margin-bottom:0;
}
.admin-pedido-detail .admin-details .admin-pedido-block--nested h2.admin-pedido-detail__title{
  margin-top:18px;
}
@media (max-width: 900px){
  .admin-pedido-detail .admin-pedido-meta{
    max-width:none;
  }
  .admin-details summary{
    min-height:52px;
    padding:16px 18px;
    font-size:16px;
  }
  .admin-pedido-hero__row{
    flex-direction:column;
    align-items:flex-start;
    gap:6px;
  }
}

/* Listado pedidos admin */
.admin-pedidos-filters{
  margin:0 0 28px;
  padding:18px 20px;
  border:1px solid var(--border);
  border-radius:14px;
  background:linear-gradient(180deg, #FCF9F3 0%, #FCF9F3 100%);
}
.admin-pedidos-filters__title{
  margin:0 0 14px;
  font-size:16px;
  font-weight:700;
  color:#111827;
}
.admin-pedidos-filters .admin-form--filters{
  margin-bottom:0;
  padding-bottom:0;
  border-bottom:none;
}
.admin-pedidos-results__title{
  margin:0 0 14px;
  font-size:18px;
  font-weight:700;
  color:#111827;
}
.admin-pedidos-results__count{
  font-weight:500;
  color:var(--muted);
}
.admin-pedidos-table .admin-pedido-code{
  font-size:14px;
  font-weight:700;
  color:#111827;
  background:transparent;
  padding:0;
}
.admin-pedidos-table .admin-pedido-fecha{
  font-size:14px;
  color:#374151;
  white-space:nowrap;
}
.admin-pedidos-table .admin-pedido-cliente-nombre{
  display:block;
  font-weight:600;
  color:#111827;
  line-height:1.35;
}
.admin-pedidos-table .admin-pedido-cliente-email{
  display:block;
  margin-top:3px;
  font-size:13px;
  line-height:1.35;
  word-break:break-word;
}
.admin-pedidos-table .admin-pedido-total{
  font-weight:700;
  font-size:15px;
  color:#111827;
  white-space:nowrap;
}
.admin-pedidos-table .admin-status-badge{
  font-size:12px;
  padding:5px 10px;
  max-width:12rem;
}
.admin-pedidos-table .admin-pedido-row__action{
  text-align:right;
  white-space:nowrap;
}
.admin-pedidos-list .admin-pedido-row__link{
  min-height:36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
@media (min-width:901px){
  .admin-pedidos-table-wrap{
    overflow-x:auto;
  }
  .admin-pedidos-table th:nth-child(1){ min-width:8.5rem; }
  .admin-pedidos-table th:nth-child(4){ text-align:right; }
  .admin-pedidos-table td.admin-pedido-row__total{
    text-align:right;
  }
  .admin-pedidos-table td.admin-pedido-row__pago,
  .admin-pedidos-table td.admin-pedido-row__operativo,
  .admin-pedidos-table td.admin-pedido-row__mp{
    vertical-align:middle;
  }
}
@media (max-width:900px){
  .admin-pedidos-table-wrap{
    overflow:visible;
    border:none;
    background:transparent;
    box-shadow:none;
  }
  .admin-pedidos-table{
    display:block;
    width:100%;
  }
  .admin-pedidos-table thead{
    display:none;
  }
  .admin-pedidos-table tbody{
    display:flex;
    flex-direction:column;
    gap:14px;
  }
  .admin-pedidos-table tr.admin-pedido-card{
    display:grid;
    grid-template-columns:1fr auto;
    grid-template-areas:
      "code total"
      "fecha fecha"
      "cliente cliente"
      "pago pago"
      "operativo operativo"
      "mp mp"
      "action action";
    border:1px solid var(--border);
    border-radius:14px;
    background:var(--surface);
    box-shadow:0 1px 3px rgba(0,0,0,.06);
    overflow:hidden;
  }
  .admin-pedidos-table tr.admin-pedido-row--empty{
    display:block;
    padding:16px;
    border:1px solid var(--border);
    border-radius:14px;
    background:var(--surface);
  }
  .admin-pedidos-table tr.admin-pedido-row--empty td{
    display:block;
    padding:0;
    border:none;
  }
  .admin-pedidos-table tr.admin-pedido-card td{
    display:block;
    width:100%;
    border:none;
    padding:0 16px 10px;
  }
  .admin-pedidos-table tr.admin-pedido-card td::before{
    display:block;
    margin-bottom:4px;
    font-size:11px;
    font-weight:600;
    letter-spacing:.04em;
    text-transform:uppercase;
    color:var(--muted);
    content:attr(data-label);
  }
  .admin-pedidos-table tr.admin-pedido-card td[data-label=""]::before{
    display:none;
  }
  .admin-pedidos-table tr.admin-pedido-card td.admin-pedido-row__code{
    grid-area:code;
    padding:14px 0 4px 16px;
  }
  .admin-pedidos-table tr.admin-pedido-card td.admin-pedido-row__code::before{
    display:none;
  }
  .admin-pedidos-table tr.admin-pedido-card td.admin-pedido-row__fecha{
    grid-area:fecha;
    padding:0 16px 12px;
    border-bottom:1px solid var(--border);
    margin-bottom:4px;
  }
  .admin-pedidos-table tr.admin-pedido-card td.admin-pedido-row__fecha::before{
    display:none;
  }
  .admin-pedidos-table tr.admin-pedido-card td.admin-pedido-row__total{
    grid-area:total;
    padding:14px 16px 4px 0;
    text-align:right;
    align-self:start;
  }
  .admin-pedidos-table tr.admin-pedido-card td.admin-pedido-row__total::before{
    display:none;
  }
  .admin-pedidos-table tr.admin-pedido-card td.admin-pedido-row__cliente{
    grid-area:cliente;
    padding-top:12px;
  }
  .admin-pedidos-table tr.admin-pedido-card td.admin-pedido-row__pago{
    grid-area:pago;
  }
  .admin-pedidos-table tr.admin-pedido-card td.admin-pedido-row__operativo{
    grid-area:operativo;
  }
  .admin-pedidos-table tr.admin-pedido-card td.admin-pedido-row__mp{
    grid-area:mp;
    padding-bottom:12px;
  }
  .admin-pedidos-table tr.admin-pedido-card td.admin-pedido-row__action{
    grid-area:action;
    padding:0 16px 16px;
    border-top:1px solid var(--border);
    margin-top:4px;
    text-align:left;
  }
  .admin-pedidos-table tr.admin-pedido-card td.admin-pedido-row__action::before{
    display:none;
  }
  .admin-pedidos-table .admin-pedido-code{
    font-size:16px;
  }
  .admin-pedidos-table .admin-pedido-total{
    font-size:17px;
  }
  .admin-pedidos-table .admin-status-badge{
    max-width:none;
  }
  .admin-pedidos-list .admin-pedido-row__link{
    width:100%;
    min-height:44px;
  }
  .admin-pedidos-table .admin-pedido-row__action .admin-pedido-row__link + .admin-pedido-row__link{
    margin-top:8px;
  }
}

/* Listado ventas manuales admin */
.admin-ventas-table .admin-venta-fecha{
  display:block;
  font-size:14px;
  color:#374151;
  white-space:nowrap;
}
.admin-ventas-table .admin-venta-fecha-hora{
  display:block;
  margin-top:2px;
  font-size:12px;
  line-height:1.3;
}
.admin-ventas-table .admin-venta-cliente-nombre{
  display:block;
  font-weight:600;
  color:#111827;
  line-height:1.35;
}
.admin-ventas-table .admin-venta-meta{
  display:block;
  margin-top:4px;
  font-size:12px;
  line-height:1.4;
}
.admin-ventas-table .admin-venta-total{
  display:block;
  font-weight:700;
  font-size:15px;
  color:#111827;
  white-space:nowrap;
}
.admin-ventas-table .admin-venta-fin-meta{
  display:block;
  margin-top:4px;
  font-size:12px;
  line-height:1.4;
}
.admin-ventas-table .admin-venta-estados-badges{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:6px;
}
.admin-ventas-table .admin-status-badge{
  font-size:12px;
  padding:5px 10px;
  max-width:100%;
}
.admin-ventas-table .admin-venta-row__action{
  text-align:right;
  white-space:nowrap;
}
.admin-ventas-list .admin-venta-row__link{
  min-height:36px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
@media (min-width:901px){
  .admin-ventas-table-wrap{
    overflow:visible;
  }
  .admin-ventas-table--compact{
    table-layout:fixed;
    width:100%;
  }
  .admin-ventas-table--compact .admin-ventas-table__th-fecha,
  .admin-ventas-table--compact td.admin-venta-row__fecha{
    width:9rem;
  }
  .admin-ventas-table--compact .admin-ventas-table__th-cliente,
  .admin-ventas-table--compact td.admin-venta-row__cliente{
    width:auto;
  }
  .admin-ventas-table--compact .admin-ventas-table__th-fin,
  .admin-ventas-table--compact td.admin-venta-row__fin{
    width:13rem;
    text-align:right;
  }
  .admin-ventas-table--compact .admin-ventas-table__th-estados,
  .admin-ventas-table--compact td.admin-venta-row__estados{
    width:11rem;
  }
  .admin-ventas-table--compact .admin-ventas-table__th-action,
  .admin-ventas-table--compact td.admin-venta-row__action{
    width:7.5rem;
  }
  .admin-ventas-table--compact td.admin-venta-row__fin .admin-venta-total,
  .admin-ventas-table--compact td.admin-venta-row__fin .admin-venta-fin-meta{
    text-align:right;
  }
}
@media (max-width:900px){
  .admin-ventas-table-wrap{
    overflow:visible;
    border:none;
    background:transparent;
    box-shadow:none;
  }
  .admin-ventas-table{
    display:block;
    width:100%;
  }
  .admin-ventas-table thead{
    display:none;
  }
  .admin-ventas-table tbody{
    display:flex;
    flex-direction:column;
    gap:14px;
  }
  .admin-ventas-table tr.admin-venta-card{
    display:grid;
    grid-template-columns:1fr auto;
    grid-template-areas:
      "fecha fin"
      "cliente cliente"
      "estados estados"
      "action action";
    border:1px solid var(--border);
    border-radius:14px;
    background:var(--surface);
    box-shadow:0 1px 3px rgba(0,0,0,.06);
    overflow:hidden;
  }
  .admin-ventas-table tr.admin-venta-row--empty{
    display:block;
    padding:16px;
    border:1px solid var(--border);
    border-radius:14px;
    background:var(--surface);
  }
  .admin-ventas-table tr.admin-venta-row--empty td{
    display:block;
    padding:0;
    border:none;
  }
  .admin-ventas-table tr.admin-venta-card td{
    display:block;
    width:100%;
    border:none;
    padding:0 16px 10px;
  }
  .admin-ventas-table tr.admin-venta-card td::before{
    display:block;
    margin-bottom:4px;
    font-size:11px;
    font-weight:600;
    letter-spacing:.04em;
    text-transform:uppercase;
    color:var(--muted);
    content:attr(data-label);
  }
  .admin-ventas-table tr.admin-venta-card td[data-label=""]::before{
    display:none;
  }
  .admin-ventas-table tr.admin-venta-card td.admin-venta-row__fecha{
    grid-area:fecha;
    padding:14px 0 4px 16px;
  }
  .admin-ventas-table tr.admin-venta-card td.admin-venta-row__fecha::before{
    display:none;
  }
  .admin-ventas-table tr.admin-venta-card td.admin-venta-row__fin{
    grid-area:fin;
    padding:14px 16px 4px 0;
    text-align:right;
  }
  .admin-ventas-table tr.admin-venta-card td.admin-venta-row__fin::before{
    display:none;
  }
  .admin-ventas-table tr.admin-venta-card td.admin-venta-row__cliente{
    grid-area:cliente;
    padding:0 16px 12px;
    border-bottom:1px solid var(--border);
    margin-bottom:4px;
  }
  .admin-ventas-table tr.admin-venta-card td.admin-venta-row__cliente::before{
    display:none;
  }
  .admin-ventas-table tr.admin-venta-card td.admin-venta-row__estados{
    grid-area:estados;
    padding-top:12px;
  }
  .admin-ventas-table tr.admin-venta-card td.admin-venta-row__action{
    grid-area:action;
    padding:0 16px 16px;
    border-top:1px solid var(--border);
    margin-top:4px;
    text-align:left;
  }
  .admin-ventas-table tr.admin-venta-card td.admin-venta-row__action::before{
    display:none;
  }
  .admin-ventas-table .admin-venta-total{
    font-size:17px;
  }
  .admin-ventas-table .admin-venta-fin-meta{
    font-size:13px;
  }
  .admin-ventas-table .admin-status-badge{
    max-width:none;
  }
  .admin-ventas-list .admin-venta-row__link{
    width:100%;
    min-height:44px;
  }
}

/* Detalle venta manual admin */
.admin-venta-detail .admin-back-button{
  margin:0 0 16px;
}
.admin-venta-summary{
  margin:0 0 28px;
  padding:20px 22px;
  border:1px solid var(--border);
  border-radius:14px;
  background:linear-gradient(180deg, #FCF9F3 0%, #FCF9F3 100%);
}
.admin-venta-summary__title{
  margin:0 0 6px;
  font-size:clamp(20px, 2.5vw, 26px);
  font-weight:700;
  letter-spacing:-0.02em;
  color:#111827;
}
.admin-venta-summary__fecha{
  margin:0 0 8px;
  font-size:15px;
  color:#374151;
}
.admin-venta-summary__cliente{
  margin:0 0 12px;
  font-size:16px;
}
.admin-venta-summary__badges{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:18px;
}
.admin-venta-summary__metrics{
  margin:0;
}
.admin-venta-summary__metric--total .admin-summary-card__value{
  font-size:1.35rem;
  font-weight:700;
  color:#111827;
}
.admin-venta-summary__value--secondary{
  color:#4b5563;
}
.admin-venta-summary__value--margen{
  color:#047857;
  font-weight:700;
}
.admin-venta-block{
  margin:0 0 28px;
  padding:0 0 22px;
  border-bottom:1px solid var(--border);
}
.admin-venta-block:last-child{
  border-bottom:0;
  padding-bottom:0;
}
.admin-venta-block__title{
  margin:0 0 14px;
  font-size:17px;
  font-weight:700;
  color:#111827;
}
.admin-venta-fin-card__lead{
  margin:0 0 12px;
  font-size:14px;
  max-width:52ch;
}
.admin-venta-fin-card{
  max-width:28rem;
  padding:14px 16px;
  border:1px solid #E5DCCE;
  border-radius:10px;
  background:#F4EEE3;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.admin-venta-fin-card__row{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  gap:10px 16px;
  align-items:baseline;
  font-size:14px;
}
.admin-venta-fin-card__label{
  color:#4b5563;
}
.admin-venta-fin-card__value{
  font-variant-numeric:tabular-nums;
  text-align:right;
  font-weight:600;
  color:#111827;
  white-space:nowrap;
}
.admin-venta-fin-card__value--neg{
  color:#b45309;
}
.admin-venta-fin-card__value--total{
  font-size:17px;
  font-weight:700;
}
.admin-venta-fin-card__value--margen{
  font-size:16px;
  font-weight:700;
  color:#047857;
}
.admin-venta-fin-card__row--highlight{
  margin-top:4px;
  padding-top:10px;
  border-top:1px solid #E5DCCE;
}
.admin-venta-fin-card__row--margen{
  margin-top:2px;
  padding-top:8px;
  border-top:1px dashed #d1d5db;
}
.admin-venta-fin-card__detail{
  margin:-2px 0 2px;
  padding-left:2px;
  font-size:13px;
  line-height:1.35;
}
.admin-venta-fin-card__sin-desc{
  margin:0;
  font-size:13px;
}
.admin-venta-fin-card__nota{
  margin:12px 0 0;
  max-width:52ch;
  font-size:13px;
}
.admin-venta-pago-ref{
  display:block;
  margin-top:4px;
  font-size:12px;
  line-height:1.35;
  max-width:22rem;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.admin-venta-cobro-ref{
  margin:0;
  font-size:15px;
  line-height:1.45;
  color:#111827;
}
@media (max-width: 640px){
  .admin-venta-fin-card{
    max-width:none;
  }
  .admin-venta-fin-card__row{
    gap:8px 12px;
  }
  .admin-venta-pago-ref{
    max-width:none;
    white-space:normal;
  }
}
.admin-venta-detail .admin-venta-details{
  margin-top:8px;
}
/* Tabla ?tems vendidos (detalle): no heredar estilos de fieldset .admin-venta-item-card del formulario */
.admin-venta-items-table{
  table-layout:auto;
}
.admin-venta-items-table .admin-venta-item__producto{
  font-weight:600;
  color:#111827;
  text-align:left;
  min-width:10rem;
}
.admin-venta-items-table .admin-venta-item__margen{
  font-weight:600;
  color:#047857;
}
.admin-venta-items-table th.admin-venta-col--producto,
.admin-venta-items-table td.admin-venta-item__producto{
  text-align:left;
}
.admin-venta-items-table th.admin-venta-col--qty,
.admin-venta-items-table td.admin-venta-item__cantidad{
  text-align:center;
  width:4.25rem;
}
.admin-venta-items-table th.admin-venta-col--num,
.admin-venta-items-table td.admin-venta-item__precio,
.admin-venta-items-table td.admin-venta-item__costo,
.admin-venta-items-table td.admin-venta-item__subtotal-venta,
.admin-venta-items-table td.admin-venta-item__subtotal-costo,
.admin-venta-items-table td.admin-venta-item__margen{
  text-align:right;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.admin-venta-items-table th.admin-venta-col--tipo,
.admin-venta-items-table td.admin-venta-item__tipo{
  text-align:left;
  min-width:6.5rem;
}
.admin-venta-items-table thead th{
  font-size:12px;
  font-weight:600;
  letter-spacing:.02em;
  color:var(--muted);
  vertical-align:bottom;
  white-space:nowrap;
}
@media (min-width:901px){
  .admin-venta-items-table-wrap{
    overflow-x:auto;
  }
  .admin-venta-movs-table-wrap{
    overflow-x:auto;
  }
}
@media (max-width:900px){
  .admin-venta-summary{
    padding:16px 18px;
  }
  .admin-venta-summary__metrics > .admin-summary-card{
    padding:12px 14px;
  }
  .admin-venta-items-table-wrap,
  .admin-venta-movs-table-wrap{
    overflow:visible;
    border:none;
    background:transparent;
    box-shadow:none;
  }
  .admin-venta-items-table{
    display:block;
    width:100%;
  }
  .admin-venta-items-table thead{
    display:none;
  }
  .admin-venta-items-table tbody{
    display:flex;
    flex-direction:column;
    gap:12px;
  }
  .admin-venta-items-table tr.admin-venta-item-row{
    display:grid;
    grid-template-columns:1fr 1fr;
    grid-template-areas:
      "producto producto"
      "cantidad precio"
      "costo subtotal"
      "margen margen";
    gap:0;
    border:1px solid var(--border);
    border-radius:12px;
    background:var(--surface);
    box-shadow:0 1px 2px rgba(0,0,0,.05);
    overflow:hidden;
  }
  .admin-venta-items-table tr.admin-venta-item-row td{
    display:block;
    border:none;
    padding:10px 14px;
    text-align:left;
    white-space:normal;
  }
  .admin-venta-items-table tr.admin-venta-item-row td::before{
    display:block;
    margin-bottom:3px;
    font-size:11px;
    font-weight:600;
    letter-spacing:.04em;
    text-transform:uppercase;
    color:var(--muted);
    content:attr(data-label);
  }
  .admin-venta-items-table tr.admin-venta-item-row td.admin-venta-item__producto{
    grid-area:producto;
    padding:12px 14px;
    border-bottom:1px solid var(--border);
    background:#FCF9F3;
    font-size:15px;
    text-align:left;
  }
  .admin-venta-items-table tr.admin-venta-item-row td.admin-venta-item__producto::before{
    display:none;
  }
  .admin-venta-items-table tr.admin-venta-item-row td.admin-venta-item__cantidad{
    grid-area:cantidad;
    text-align:left;
  }
  .admin-venta-items-table tr.admin-venta-item-row td.admin-venta-item__precio{
    grid-area:precio;
    text-align:right;
  }
  .admin-venta-items-table tr.admin-venta-item-row td.admin-venta-item__costo{
    grid-area:costo;
    text-align:left;
  }
  .admin-venta-items-table tr.admin-venta-item-row td.admin-venta-item__subtotal-venta{
    grid-area:subtotal;
    text-align:right;
    font-weight:600;
  }
  .admin-venta-items-table tr.admin-venta-item-row td.admin-venta-item__margen{
    grid-area:margen;
    grid-column:1 / -1;
    border-top:1px solid var(--border);
    font-weight:700;
    text-align:right;
  }
  .admin-venta-items-table tr.admin-venta-item-row td.admin-venta-col--desktop-only{
    display:none;
  }
  .admin-venta-movs-table-wrap .admin-table{
    display:block;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
}

/* Checkout */
.cart-summary__checkout{
  margin:16px 0 0;
}
.cart-checkout-hint{
  font-size:13px;
  line-height:1.55;
  font-weight:400;
  color:#868e96;
  max-width:100%;
  margin:12px 0 0;
}
.cart-minimo-banner{
  margin-top:16px;
}
.cart-minimo-banner .cart-notice.cart-notice--min{
  margin-bottom:0;
}
.cart-minimo-banner__title{
  margin:0 0 8px;
  padding:0;
  font-size:15px;
  line-height:1.45;
}
.cart-minimo-banner__title strong{
  font-weight:700;
}
.cart-minimo-banner__falta{
  margin:0 0 10px;
  font-size:15px;
  line-height:1.5;
  font-weight:500;
}
.cart-minimo-banner__agrega{
  margin:0;
  font-size:13px;
  line-height:1.45;
  font-weight:400;
  color:var(--muted);
}
a.btn.cart-wa-order--blocked{
  pointer-events:none;
  cursor:not-allowed;
  opacity:0.58;
  text-decoration:none;
}
.cart-page .cart-clear-form{
  margin-top:18px;
}

/* Carrito: hero compacto (t?tulo + ayudas, sin competir con la tabla) */
.cart-page .hero-text--cart{
  gap:10px;
}
.cart-page .hero-text--cart .rule{
  margin:2px 0 4px;
}
.cart-page .hero-text--cart h1{
  font-size:clamp(22px, 2.5vw, 30px);
  line-height:1.12;
  margin:0;
}
.cart-page .hero-text--cart .cart-hero__lead{
  margin:0;
  font-size:clamp(14px, 1.35vw, 16px);
  line-height:1.5;
  max-width:48ch;
}
.cart-page .hero-text--cart .cart-hero__note{
  margin:0;
  font-size:13px;
  line-height:1.45;
  max-width:52ch;
}
.checkout-page > h1{
  margin:0 0 12px;
}
.checkout-page > .rule{
  margin:0 0 20px;
}
.checkout-page > .checkout-lead{
  margin:0 0 30px;
  font-size:clamp(16px, 1.35vw, 18px);
  line-height:1.55;
  color:#374151;
  max-width:42ch;
}
.checkout-page > .checkout-errors{
  margin:0 0 24px;
}
.checkout-errors{
  background:#fef2f2;
  border:1px solid #fecaca;
  border-radius:12px;
  padding:14px 16px;
  margin:0 0 22px;
  font-size:15px;
  color:#991b1b;
}
.checkout-errors ul{ margin:8px 0 0 1.2em; }
.checkout-layout{
  display:grid;
  grid-template-columns:1fr min(360px, 100%);
  gap:32px;
  align-items:start;
}
@media (max-width:900px){
  .checkout-layout{ grid-template-columns:1fr; }
}
.checkout-form-wrap h2,
.checkout-summary h2{
  font-size:20px;
  font-weight:700;
  margin:0 0 14px;
}
.checkout-form{
  display:flex;
  flex-direction:column;
  gap:14px;
  max-width:520px;
}
.checkout-form label{
  display:flex;
  flex-direction:column;
  gap:6px;
  font-size:14px;
  color:#374151;
}
.checkout-form input,
.checkout-form textarea,
.checkout-form select{
  padding:10px 12px;
  border:1px solid var(--border);
  border-radius:10px;
  font-family:inherit;
  font-size:15px;
  background:var(--surface);
  max-width:100%;
}
.checkout-zona-fieldset{
  border:0;
  margin:0;
  padding:0;
  min-width:0;
}
.checkout-zona-legend{
  font-size:14px;
  font-weight:600;
  color:#374151;
  margin:0 0 10px;
  padding:0;
}
.checkout-zona-options{
  display:flex;
  flex-wrap:wrap;
  gap:12px 18px;
}
.checkout-zona-option{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:15px;
  color:var(--text);
  cursor:pointer;
  font-weight:500;
}
.checkout-zona-option input{
  width:18px;
  height:18px;
  accent-color:var(--brand);
  flex-shrink:0;
}
.checkout-zona-panel{
  margin-top:4px;
}
.checkout-zona-footnote{
  font-size:13px;
  margin:8px 0 0;
  line-height:1.45;
}
.checkout-summary{
  background:#F4EEE3;
  border:1px solid var(--border);
  border-radius:14px;
  padding:18px 20px;
}
.checkout-summary-list{
  list-style:none;
  margin:0 0 16px;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:10px;
  font-size:15px;
}
.checkout-summary-list li{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding-bottom:10px;
  border-bottom:1px solid var(--border);
}
.checkout-summary-list li:last-child{ border-bottom:0; padding-bottom:0; }
.checkout-summary-name{ flex:1; min-width:0; }
.checkout-summary-price{ font-weight:600; color:var(--brand); flex-shrink:0; }
.checkout-summary-total{ font-size:17px; margin:8px 0 0; }
.checkout-summary-billing{ font-size:13px; margin-top:8px; line-height:1.45; }
.checkout-summary-note{ font-size:13px; margin-top:12px !important; }
/* Facturaci?n: el .sub global limita a 52ch; ac? usamos todo el ancho del formulario. */
.checkout-form .checkout-factura-h2{
  margin:32px 0 6px;
  font-size:19px;
  line-height:1.25;
}
.checkout-form p.checkout-factura-hint.sub,
.checkout-form .checkout-factura-hint{
  display:block;
  max-width:none;
  width:100%;
  margin:0 0 18px !important;
  font-size:14px;
  line-height:1.58;
}
.checkout-factura-fieldset{
  margin-top:0;
}
/* Tipo de comprobante: columna (solo facturaci?n; GBA/CABA sigue con .checkout-zona-options horizontal). */
.checkout-factura-fieldset .checkout-factura-options{
  flex-direction:column;
  align-items:stretch;
  flex-wrap:nowrap;
  gap:12px;
}
.checkout-factura-fieldset .checkout-factura-option{
  display:flex;
  flex-direction:row;
  align-items:center;
  gap:10px;
  width:100%;
  margin:0;
}
.checkout-factura-fieldset .checkout-factura-option input[type="radio"]{
  margin:0;
  flex-shrink:0;
}
.checkout-factura-fieldset .checkout-factura-option span{
  flex:1;
  min-width:0;
  line-height:1.45;
}
.checkout-factura-panel{ margin-top:10px; }
.checkout-form p.checkout-factura-panel-hint.sub,
.checkout-form .checkout-factura-panel-hint{
  display:block;
  max-width:none;
  width:100%;
  margin:0 0 14px !important;
  font-size:13px;
  line-height:1.55;
}
.checkout-exito-factura__lead{ margin:0 0 12px !important; font-size:14px; line-height:1.45; }

/* P?gina ?xito pedido (sin MP / flujo manual) */
.checkout-exito-page{
  max-width:min(560px, 100%);
  margin:0 auto;
}
.checkout-exito-title{
  font-size:clamp(26px, 3vw, 34px);
  font-weight:800;
  letter-spacing:-0.02em;
  margin:0 0 10px;
  line-height:1.1;
}
.checkout-exito-page > .rule{
  margin:0 0 22px;
}
.checkout-exito-lead{
  margin:0 0 28px;
}
.checkout-exito-lead .checkout-exito-line{
  margin:0 0 8px;
  max-width:none;
}
.checkout-exito-lead .checkout-exito-line:last-child{
  margin-bottom:0;
}
.checkout-exito-code-block{
  margin:0 0 28px;
  padding:18px 20px;
  background:linear-gradient(180deg, #FCF9F3 0%, #F4EEE3 100%);
  border:1px solid var(--border);
  border-radius:14px;
  text-align:center;
}
.checkout-exito-code-label{
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--muted);
  margin:0 0 10px;
  font-weight:600;
}
.checkout-exito-codigo{
  margin:0;
  font-size:clamp(17px, 3.4vw, 22px);
  font-weight:700;
  letter-spacing:.03em;
  color:var(--brand);
  line-height:1.25;
  word-break:break-all;
}
.checkout-exito-card{
  background:#F4EEE3;
  border:1px solid var(--border);
  border-radius:14px;
  padding:20px 22px 18px;
  margin:0 0 28px;
}
.checkout-exito-card__title{
  font-size:17px;
  font-weight:700;
  margin:0 0 14px;
  color:var(--text);
}
.checkout-exito-card__list{
  margin-bottom:14px !important;
}
.checkout-exito-card .checkout-summary-list li:last-child{
  padding-bottom:12px;
  border-bottom:1px solid var(--border);
}
.checkout-exito-total{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:16px;
  margin:0;
  padding-top:14px;
  border-top:1px solid rgba(229,231,235,.9);
  font-size:clamp(18px, 2.2vw, 22px);
  font-weight:700;
  color:var(--text);
}
.checkout-exito-total__label{
  font-weight:700;
  color:#374151;
}
.checkout-exito-total__value{
  font-size:clamp(20px, 2.5vw, 26px);
  font-weight:800;
  color:var(--brand);
  letter-spacing:-0.02em;
}
.checkout-exito-factura__title{
  font-size:16px;
  margin:18px 0 8px;
  font-weight:700;
}
.checkout-exito-factura-dl{
  margin:0 0 8px;
  font-size:14px;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:4px 14px;
}
.checkout-exito-factura-dl dt{
  font-weight:600;
  color:#374151;
}
.checkout-exito-factura-dl dd{ margin:0; }
.checkout-exito-closing{
  margin:0 0 28px;
}
.checkout-exito-closing .sub{
  margin:0 0 10px;
  max-width:none;
}
.checkout-exito-closing .sub:last-child{
  margin-bottom:0;
}
.checkout-exito-ctas{
  margin-top:8px;
}

/* Retorno de pago (legacy): tarjeta blanca; clases compartidas con ?xito de pedido */
.payment-return{
  margin-bottom:clamp(28px, 5vw, 48px);
}
.payment-return-card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:16px;
  padding:clamp(22px, 4vw, 36px);
  box-shadow:0 4px 28px rgba(0,0,0,.045);
}
.payment-return-card > .kicker{
  margin-top:0;
  margin-bottom:12px;
}
.payment-return-card > h1{
  margin-top:0;
  margin-bottom:12px;
}
.payment-return-card > .rule{
  margin:0 0 20px;
}
.payment-return-card .payment-return__text{
  margin:0 0 14px;
  max-width:52ch;
  font-size:clamp(15px, 1.25vw, 17px);
  line-height:1.55;
  color:#374151;
}
.payment-return-card .payment-return__detail{
  margin:16px 0 0;
  max-width:52ch;
  font-size:15px;
  line-height:1.55;
  color:#4b5563;
}
.payment-return-card .payment-return__code{
  margin:20px 0 0;
}
.payment-return-card .payment-return-ctas{
  margin-top:28px;
}
.payment-return-ctas .btn{
  min-width:min(100%, 168px);
  justify-content:center;
}
@media (max-width:520px){
  .payment-return-ctas{
    flex-direction:column;
    align-items:stretch;
  }
  .payment-return-ctas .btn{
    width:100%;
    min-width:0;
  }
}

.checkout-exito-h2{
  font-size:18px;
  margin:24px 0 12px;
}
.checkout-summary-list--compact{ margin-bottom:12px; }

/* C?mo pedir: hero intro (bajada, menos protagonista) */
.page-inner .hero-text.como-comprar-hero{
  gap:10px;
}
.page-inner .hero-text.como-comprar-hero .rule{
  margin:4px 0 6px;
}
.page-inner .hero-text.como-comprar-hero > .sub{
  margin:0;
  font-size:clamp(14px, 1.25vw, 15.5px);
  line-height:1.45;
  max-width:min(680px, 100%);
}
.page-inner .hero-text.como-comprar-hero > .sub.muted-soft{
  font-size:13px;
  line-height:1.45;
  max-width:min(680px, 100%);
  color:#6b7280;
}

/* C?mo comprar */
.como-comprar-body{
  margin-top:20px;
}

.como-comprar-h2{
  font-size:clamp(20px, 2.5vw, 24px);
  font-weight:700;
  margin:28px 0 14px;
  letter-spacing:-0.02em;
}
.como-comprar-body .como-comprar-h2:first-child{
  margin-top:0;
}
.como-comprar-steps{
  list-style:none;
  margin:0 0 8px;
  padding:0;
  counter-reset: paso;
}
.como-comprar-steps li{
  position:relative;
  padding:0 0 20px 2.1rem;
  font-size:clamp(16px, 1.25vw, 17px);
  line-height:1.55;
  color:#374151;
  margin-left:0;
}
.como-comprar-steps li:last-child{
  padding-bottom:0;
}
.como-comprar-steps li::after{
  content:"";
  position:absolute;
  left:11px;
  top:24px;
  bottom:0;
  width:2px;
  background:rgba(119,155,115,.2);
}
.como-comprar-steps li:last-child::after{
  display:none;
}
.como-comprar-steps li::before{
  counter-increment: paso;
  content: counter(paso);
  position:absolute;
  left:0;
  transform:none;
  width:24px;
  height:24px;
  border-radius:50%;
  background:var(--brand);
  color:#fff;
  font-size:12px;
  font-weight:700;
  display:flex;
  align-items:center;
  justify-content:center;
  line-height:1;
}
.como-comprar-steps strong{
  color:var(--text);
  font-weight:600;
}
.como-comprar-ctas{
  margin-top:28px;
  flex-wrap:wrap;
}

.como-comprar-steps-grid{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
}

.como-comprar-step-card{
  border:1px solid var(--border);
  border-radius:14px;
  background:var(--surface);
  padding:14px 14px 15px;
}

.como-comprar-step-card__badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:24px;
  height:24px;
  border-radius:999px;
  background:var(--brand);
  color:#fff;
  font-size:12px;
  font-weight:700;
  margin-bottom:10px;
}

.como-comprar-step-card h3{
  margin:0 0 6px;
  font-size:16px;
  line-height:1.3;
}

.como-comprar-step-card p{
  margin:0;
  font-size:14px;
  line-height:1.5;
  color:#4b5563;
}

.como-comprar-envios-panel{
  margin-top:6px;
  border:1px solid rgba(119,155,115,.2);
  border-radius:14px;
  background:rgba(119,155,115,.03);
  padding:16px 16px;
}

.como-comprar-envios .sub{
  max-width:none;
  font-size:clamp(15px, 1.15vw, 16px);
  line-height:1.62;
  color:#4b5563;
}

.como-comprar-envios-list{
  list-style:none;
  margin:0;
  padding-left:0;
  display:flex;
  flex-direction:column;
  gap:14px;
}

.como-comprar-envios-list li{
  position:relative;
  padding-left:1.2rem;
  margin:0;
}

.como-comprar-envios-list .sub{
  max-width:none;
}

.como-comprar-envios-list--slightly-smaller li.sub{
  font-size:14px;
  line-height:1.52;
}

.como-comprar-envios-list li::before{
  content:"\2022";
  position:absolute;
  left:0;
  top:0;
  color:var(--brand);
  font-weight:700;
  font-size:1.1em;
  line-height:1.2;
}

.como-comprar-ctas{
  gap:10px;
}

.como-comprar-ctas .btn-primary{
  min-width:180px;
}

@media (max-width:900px){
  .como-comprar-steps-grid{
    grid-template-columns:1fr;
  }
}

/* Legal minimum package */
.footer{
  align-items:flex-start;
}

.footer-meta{
  display:flex;
  flex-direction:column;
  gap:3px;
  max-width:100%;
  flex:1;
}

.footer-copy{
  margin:0;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  column-gap:0.35em;
  row-gap:0.35em;
}

.footer-copy .copyright-sep{
  opacity:0.45;
}

.footer-copy a.spindel-credit{
  display:inline;
  color:var(--muted);
  font-size:1em;
  line-height:1;
  margin:0 0 0 0.45em;
  border-bottom:none;
  gap:0;
}

.footer-copy a.spindel-credit:hover,
.footer-copy a.spindel-credit:hover span{
  color:var(--brand);
  border-bottom-color:transparent;
}

.spindel-credit{
  display:inline-flex;
  align-items:center;
  gap:0.35em;
  color:inherit;
  text-decoration:none;
  opacity:0.62;
  font-size:0.78rem;
  letter-spacing:0.025em;
  transition:opacity .25s ease, transform .25s ease, color .25s ease;
}

.spindel-credit span{
  position:relative;
  font-weight:700;
  letter-spacing:0.12em;
  transition:color .25s ease;
}

.spindel-credit span::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-0.18em;
  width:100%;
  height:1px;
  background:currentColor;
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .3s ease;
}

.spindel-credit:hover{
  opacity:1;
  transform:translateY(-1px);
}

.spindel-credit:hover span::after{
  transform:scaleX(1);
}

.spindel-credit:focus-visible{
  outline:2px solid currentColor;
  outline-offset:4px;
  opacity:1;
}

@media (prefers-reduced-motion:reduce){
  .spindel-credit,
  .spindel-credit span,
  .spindel-credit span::after{
    transition:none;
  }

  .spindel-credit:hover{
    transform:none;
  }
}

.footer-company{
  margin:0;
  font-size:12px;
  line-height:1.45;
  color:#6b7280;
}

.footer-links{
  gap:14px;
}

.footer-links a{
  font-size:12px;
}

.footer-links--legal{
  justify-content:flex-start;
  margin-top:0;
}

.footer-links--social{
  justify-content:flex-end;
  min-width:max-content;
}

.footer-meta a{
  color:inherit;
  text-decoration:none;
  border-bottom:1px solid transparent;
}

.footer-meta a:hover{
  color:var(--brand);
  border-bottom-color:rgba(119,155,115,.35);
}

@media (min-width:641px) and (max-width:1024px){
  .footer{
    gap:8px;
  }

  .footer-links{
    gap:8px 10px;
  }

  .footer-links--legal{
    justify-content:flex-start;
    margin-top:0;
  }
}

.checkout-legal-compact{
  margin-top:2px;
  padding:12px 14px;
  border:1px solid var(--border);
  border-radius:10px;
  background:#FCF9F3;
}

.checkout-legal-compact p{
  margin:0;
  font-size:13px;
  line-height:1.5;
  color:#4b5563;
}

.checkout-legal-compact p + p{
  margin-top:6px;
}

.checkout-legal-compact__provider{
  color:#374151 !important;
}

.checkout-legal-compact__links a{
  color:var(--brand);
  text-decoration:none;
}

.checkout-legal-compact__links a:hover{
  text-decoration:underline;
}

@media (max-width:640px){
  .footer-company{
    font-size:11px;
  }

  .footer-links a{
    font-size:11px;
  }

  .footer-links--legal,
  .footer-links--social{
    width:100%;
    justify-content:flex-start;
  }

  .footer-links--legal{
    margin-top:0;
  }

  .checkout-legal-compact{
    padding:10px 12px;
  }
}

/* ?? Admin operaci?n (Fase 1) ?? */
.admin-stats-grid{
  display:grid;
  gap:12px;
  grid-template-columns:repeat(auto-fill, minmax(160px, 1fr));
  margin:0 0 16px;
}
.admin-stats-grid--compact{
  margin-bottom:20px;
}
.admin-dashboard-card--highlight{
  border-color:rgba(119,155,115,.35);
  box-shadow:0 0 0 1px rgba(119,155,115,.12);
}
.admin-filter-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0 0 16px;
}
.admin-filter-tabs a{
  padding:6px 12px;
  border-radius:8px;
  border:1px solid var(--border);
  font-size:14px;
  text-decoration:none;
  color:inherit;
}
/* Reportes operaci?n: panel operativo, ventas, estad?sticas */
.admin-report-page{
  display:flex;
  flex-direction:column;
  gap:24px;
}
.admin-page-head{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  margin-bottom:0;
}
.admin-page-head h1{
  margin:0;
}
.admin-page-head > h1 + .admin-page-head__lead,
.admin-page-head > h1 + .admin-page-head__meta{
  margin-top:8px;
}
.admin-page-head > h1 + .admin-page-actions,
.admin-page-head > .admin-page-head__lead + .admin-page-actions,
.admin-page-head > .admin-page-head__meta + .admin-page-actions{
  margin-top:14px;
}
.admin-page-head__lead{
  margin:0;
  max-width:52ch;
  font-size:14px;
  line-height:1.45;
}
.admin-page-head__meta{
  margin:0;
  font-size:14px;
  line-height:1.45;
}
.admin-page-head > .admin-page-head__lead + .admin-page-actions,
.admin-page-head > .admin-page-head__meta + .admin-page-actions{
  margin-top:10px;
}
.admin-page-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  margin:0;
}
.admin-metric-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(168px, 1fr));
  gap:12px;
  margin:0;
}
.admin-metric-card{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:14px 16px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--surface);
  box-shadow:0 1px 2px rgba(0,0,0,.04);
}
.admin-metric-card__label{
  margin:0;
  font-size:12px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--muted);
  line-height:1.3;
}
.admin-metric-card__value{
  margin:0;
  font-size:clamp(18px, 2vw, 22px);
  font-weight:700;
  color:var(--text);
  letter-spacing:-0.02em;
  line-height:1.2;
}
.admin-metric-card > .admin-muted{
  margin:2px 0 0;
  font-size:12px;
  line-height:1.4;
}
.admin-report-filters{
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:14px 16px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--surface);
  box-shadow:0 1px 2px rgba(0,0,0,.04);
}
.admin-report-filters .admin-filter-tabs{
  margin:0;
}
.admin-report-filters .admin-form--inline-filters{
  margin:0;
  max-width:100%;
}
.admin-report-section{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin:0;
}
.admin-report-section__meta{
  margin:0;
  font-size:14px;
}
.admin-table--report th:not(:first-child),
.admin-table--report td:not(:first-child){
  text-align:right;
  white-space:nowrap;
}
.admin-stats-grid > .admin-summary-card{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:14px 16px;
  border:1px solid var(--border);
  border-radius:12px;
  background:var(--surface);
  box-shadow:0 1px 2px rgba(0,0,0,.04);
  grid-template-columns:unset;
}
.admin-stats-grid > .admin-summary-card .admin-summary-card__label{
  margin:0 0 6px;
}
.admin-stats-grid > .admin-summary-card .admin-summary-card__value{
  font-size:clamp(18px, 2vw, 22px);
  font-weight:700;
  letter-spacing:-0.02em;
}
@media (max-width:640px){
  .admin-page-actions .btn{
    flex:1 1 auto;
    justify-content:center;
    min-width:min(100%, 10rem);
  }
  .admin-report-filters .admin-form--inline-filters{
    flex-direction:column;
    align-items:stretch;
  }
  .admin-report-filters .admin-form--inline-filters > label{
    width:100%;
  }
  .admin-report-filters .admin-form--inline-filters input[type="date"]{
    width:100%;
    min-height:44px;
  }
}
.admin-filter-tabs a.is-active,
.admin-filter-tabs a:hover{
  background:var(--brand);
  border-color:var(--brand);
  color:#fff;
}
.admin-filter-tabs a.is-active:hover{
  background:var(--brand-dark);
  border-color:var(--brand-dark);
}
.admin-stock-row--critico td,
.admin-stock-row--critico{
  background:#fef2f2;
}
.admin-stock-row--alerta td,
.admin-stock-row--alerta{
  background:#fffbeb;
}
.admin-stock-row-form{
  margin:0;
}
.admin-stock-row-form .admin-stock-field{
  display:none;
}
.admin-table-wrap--stock .admin-stock-table{
  table-layout:fixed;
  width:100%;
}
.admin-table-wrap--stock .admin-stock-table th:nth-child(1){ width:16%; }
.admin-table-wrap--stock .admin-stock-table th:nth-child(8){ width:7rem; }
.admin-stock-table th,
.admin-stock-table td{
  vertical-align:top;
}
.admin-table-wrap--stock .admin-stock-table td.admin-stock-card__cell{
  vertical-align:top;
  padding-top:12px;
}
.admin-stock-table input,
.admin-stock-table textarea,
.admin-stock-table button{
  margin-top:0;
}
.admin-stock-table .admin-stock-ars-preview,
.admin-stock-table .help,
.admin-stock-table small{
  display:block;
  margin-top:4px;
  line-height:1.25;
}
.admin-stock-field--cell{
  align-items:flex-start;
}
.admin-stock-card__actions .btn,
.admin-stock-card__actions .admin-stock-save{
  align-self:flex-start;
}
.admin-stock-field--cell{
  margin:0;
  min-width:0;
  width:100%;
}
.admin-stock-field{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:72px;
}
.admin-stock-field--wide{
  flex:1 1 140px;
  min-width:120px;
}
.admin-stock-field__label{
  font-size:11px;
  font-weight:600;
  color:rgba(0,0,0,.55);
}
.admin-stock-field input{
  width:100%;
  max-width:100px;
  padding:6px 8px;
  font-size:14px;
  border:1px solid var(--border);
  border-radius:10px;
  font-family:inherit;
}
.admin-stock-field--wide input{
  max-width:none;
}
.admin-stock-card__cell--usd .admin-stock-field{
  min-width:108px;
}
.admin-stock-ars-preview--legacy{
  color:var(--muted, #6b7280);
  font-style:italic;
}
.admin-stock-ars-preview--usd{
  color:inherit;
}
.admin-stock-ars-preview--empty{
  color:var(--muted, #6b7280);
}
.admin-stock-ars-preview{
  display:block;
  font-size:11px;
  line-height:1.35;
  margin-top:4px;
  color:rgba(0,0,0,.55);
}
.admin-productos-stock-page .admin-panel__head .admin-muted{
  max-width:min(720px, 100%);
}
.admin-stock-form-unico{
  margin:0;
}
.admin-stock-form-unico.admin-table-wrap--stock{
  overflow-x:auto;
}
.admin-stock-row-form--table{
  display:contents;
}
.admin-stock-min-hint{
  margin:0 0 12px;
  max-width:min(720px, 100%);
}
.admin-stock-pricing-rules{
  margin:0 0 20px;
  padding:14px 16px;
  max-width:min(52rem, 100%);
  background:#F4EEE3;
  border:1px solid var(--border, #E5DCCE);
  border-radius:10px;
  font-size:13px;
  line-height:1.5;
  color:#4b5563;
}
.admin-stock-pricing-rules__title{
  margin:0 0 10px;
  font-size:14px;
  font-weight:600;
  color:#374151;
}
.admin-stock-pricing-rules__list{
  margin:0;
  padding-left:1.25rem;
}
.admin-stock-pricing-rules__list li{
  margin:6px 0;
}
.admin-stock-pricing-rules__list li strong{
  color:#1f2937;
  font-weight:600;
}
.admin-stock-th--min{
  white-space:normal;
  min-width:5.5rem;
}
.admin-stock-card__actions{
  text-align:left;
}
.admin-stock-card__head .admin-stock-card__title-row{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  justify-content:space-between;
  gap:8px 12px;
  margin-bottom:4px;
}
.admin-stock-card__name{
  font-size:15px;
  line-height:1.35;
  flex:1 1 12rem;
}
.admin-stock-status{
  display:inline-flex;
  align-items:center;
  padding:4px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:700;
  line-height:1.2;
  white-space:nowrap;
  border:1px solid var(--border);
  background:var(--surface);
  color:#374151;
}
.admin-stock-status--ok{
  background:#ecfdf5;
  border-color:rgba(4,120,87,.22);
  color:#047857;
}
.admin-stock-status--alerta{
  background:#fffbeb;
  border-color:rgba(180,83,9,.25);
  color:#92400e;
}
.admin-stock-status--critico{
  background:#fef2f2;
  border-color:rgba(185,28,28,.22);
  color:#991b1b;
}
.admin-stock-card__stock-line{
  margin:8px 0 0;
  font-size:14px;
  color:#374151;
}
.admin-stock-card__stock-line strong{
  font-weight:700;
  color:#111827;
}
@media (min-width:901px){
  .admin-table-wrap--stock{
    overflow-x:auto;
  }
  .admin-table-wrap--stock .admin-stock-table td.admin-stock-card__head{
    min-width:10rem;
    vertical-align:top;
  }
  .admin-table-wrap--stock .admin-stock-table td.admin-stock-card__cell{
    vertical-align:top;
    padding:12px 8px 10px;
  }
  .admin-stock-card__stock-line,
  .admin-stock-status{
    display:none;
  }
  .admin-stock-card__head .admin-stock-card__title-row{
    display:block;
    margin-bottom:0;
  }
  .admin-stock-card__name{
    display:block;
    font-size:inherit;
  }
  .admin-stock-field--cell .admin-stock-field__label{
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
  }
  .admin-stock-field--cell input{
    max-width:none;
    width:100%;
    min-width:4.25rem;
  }
  .admin-stock-card__actions{
    text-align:center;
    white-space:nowrap;
  }
  .admin-stock-card__actions .admin-stock-save{
    min-height:auto;
    width:100%;
    max-width:6.5rem;
  }
}
@media (max-width:900px){
  .admin-table-wrap--stock{
    overflow:visible;
    border:none;
    background:transparent;
    box-shadow:none;
  }
  .admin-stock-table{
    display:block;
    width:100%;
    border-collapse:separate;
  }
  .admin-stock-table thead{
    display:none;
  }
  .admin-stock-table tbody{
    display:flex;
    flex-direction:column;
    gap:14px;
  }
  .admin-stock-table tr.admin-stock-card{
    display:grid;
    grid-template-columns:1fr 1fr;
    border:1px solid var(--border);
    border-radius:14px;
    background:var(--surface);
    box-shadow:0 1px 3px rgba(0,0,0,.06);
    overflow:hidden;
  }
  .admin-stock-table tr.admin-stock-row--critico{
    border-color:rgba(185,28,28,.22);
    background:var(--surface);
  }
  .admin-stock-table tr.admin-stock-row--alerta{
    border-color:rgba(180,83,9,.28);
    background:var(--surface);
  }
  .admin-stock-table tr.admin-stock-card td{
    display:block;
    width:100%;
    border-bottom:none;
    padding:0;
  }
  .admin-stock-table tr.admin-stock-card td.admin-stock-card__head{
    grid-column:1 / -1;
    padding:14px 16px 12px;
    border-bottom:1px solid var(--border);
    background:rgba(249,250,251,.9);
  }
  .admin-stock-table tr.admin-stock-row--critico td.admin-stock-card__head{
    background:#fef2f2;
  }
  .admin-stock-table tr.admin-stock-row--alerta td.admin-stock-card__head{
    background:#fffbeb;
  }
  .admin-stock-table tr.admin-stock-card td.admin-stock-card__cell{
    padding:0 16px 12px;
  }
  .admin-stock-table tr.admin-stock-card td.admin-stock-card__cell--stock{
    grid-column:1 / -1;
    padding-top:14px;
  }
  .admin-stock-table tr.admin-stock-card td.admin-stock-card__actions{
    grid-column:1 / -1;
  }
  .admin-stock-field{
    min-width:0;
    width:100%;
  }
  .admin-stock-field__label{
    font-size:12px;
    color:var(--muted);
  }
  .admin-stock-field input{
    max-width:none;
    min-height:44px;
    padding:10px 12px;
    font-size:16px;
  }
  .admin-stock-card__actions{
    margin-top:0;
    padding:4px 16px 16px;
    border-top:1px solid var(--border);
    text-align:left;
  }
  .admin-stock-card__actions .admin-stock-save{
    width:100%;
    min-height:48px;
    padding:12px 16px;
    font-size:16px;
    font-weight:600;
    border-radius:12px;
  }
}
.admin-table__sub{
  display:block;
  font-size:12px;
}
.admin-main .btn--sm{
  padding:8px 14px;
  font-size:14px;
  border-radius:10px;
}
/* Login admin */
.admin-panel--login{
  display:flex;
  justify-content:center;
  padding-top:48px;
}
.admin-login-card{
  width:100%;
  max-width:22rem;
  margin:0 auto;
}
.admin-login-card__title{
  margin:0 0 16px;
  text-align:center;
  line-height:0;
}
.admin-login-card__logo{
  display:block;
  margin:0 auto;
  width:200px;
  max-width:100%;
  height:auto;
  object-fit:contain;
}
.admin-login-card__lead{
  margin:0 0 16px;
  font-size:14px;
  text-align:center;
}
.admin-login-form{
  max-width:none;
  margin-top:0;
}
@media (max-width:900px){
  .admin-panel--login{
    padding-top:28px;
  }
  .admin-login-card{
    max-width:100%;
  }
}
/* Formulario nueva venta manual */
.admin-venta-form .admin-back-button{
  margin:0 0 16px;
}
.admin-venta-form__form{
  display:flex;
  flex-direction:column;
  gap:20px;
  max-width:960px;
}
.admin-venta-form-section{
  margin:0;
}
.admin-venta-tipo-precio-hint{
  margin:4px 0 0;
  font-size:13px;
  line-height:1.4;
}
.admin-venta-items__list{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.admin-venta-items__toolbar{
  margin:14px 0 0;
}
.admin-venta-resumen{
  border-color:rgba(5,150,105,.22);
  background:linear-gradient(180deg, #FAF6EE 0%, #FCF9F3 100%);
}
.admin-venta-resumen__grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(160px, 1fr));
  gap:12px 20px;
  margin:0 0 20px;
}
.admin-venta-resumen__row{
  margin:0;
  padding:12px 14px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--surface);
}
.admin-venta-resumen__row dt{
  margin:0 0 4px;
  font-size:12px;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:var(--muted);
}
.admin-venta-resumen__row dd{
  margin:0;
  font-size:18px;
  font-weight:700;
  color:#111827;
}
.admin-venta-resumen__grid--nums .admin-venta-resumen__row dd{
  text-align:right;
  font-variant-numeric:tabular-nums;
}
.admin-venta-resumen__row--total dd{
  font-size:20px;
}
.admin-venta-resumen__row--margen dd{
  color:#047857;
}
.admin-venta-resumen__row--descuento dd{
  color:#b45309;
}
.admin-venta-descuento-block{
  margin:0 0 14px;
  padding:10px 12px 12px;
  border:1px solid var(--border);
  border-radius:10px;
  background:#FCF9F3;
}
.admin-venta-descuento-form .admin-venta-descuento-block{
  margin-bottom:12px;
}
.admin-venta-descuento-block__title{
  font-size:13px;
  font-weight:700;
  margin:0 0 6px;
  padding:0;
}
.admin-venta-descuento-block__hint{
  margin:0 0 8px;
  font-size:13px;
  line-height:1.4;
}
.admin-venta-descuento-block__tipos{
  display:flex;
  flex-wrap:wrap;
  gap:8px 14px;
  margin:0 0 10px;
}
.admin-venta-descuento-block__fields{
  display:grid;
  grid-template-columns:minmax(120px, 160px) minmax(140px, 1fr);
  gap:8px 12px;
  align-items:end;
  max-width:36rem;
}
.admin-venta-descuento-block__subtotal{
  margin:10px 0 0;
  font-size:13px;
}
.admin-venta-descuento-radio{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:13px;
  cursor:pointer;
  white-space:nowrap;
}
.admin-venta-descuento-valor-wrap,
.admin-venta-descuento-motivo-wrap{
  display:block;
  margin:0;
  font-size:13px;
}
.admin-venta-descuento-valor-wrap input,
.admin-venta-descuento-motivo-wrap input{
  display:block;
  width:100%;
  max-width:none;
  margin-top:4px;
  min-height:40px;
  font-size:15px;
}
@media (max-width:600px){
  .admin-venta-descuento-block__fields{
    grid-template-columns:1fr;
    max-width:none;
  }
}
.admin-venta-summary__value--descuento{
  color:#b45309;
}
.admin-venta-fin-desc{
  display:block;
  font-size:12px;
  margin-top:2px;
}
.admin-venta-rentabilidad__descuento{
  color:#b45309;
  font-weight:600;
}
.admin-venta-form-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px 12px;
  align-items:center;
  padding-top:4px;
  border-top:1px solid var(--border);
}
.admin-venta-form-actions__submit{
  min-height:44px;
  padding-left:22px;
  padding-right:22px;
  font-weight:600;
}
/* Tarjetas de producto en formulario (venta-nueva, consumo, promo) ? no aplicar a filas <tr> de tabla */
fieldset.admin-venta-item,
fieldset.admin-venta-item-card{
  border:1px solid var(--border);
  border-radius:14px;
  padding:0;
  margin:0;
  background:var(--surface);
  box-shadow:0 1px 2px rgba(0,0,0,.04);
  overflow:hidden;
}
.admin-venta-item__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 16px;
  border-bottom:1px solid var(--border);
  background:#FCF9F3;
}
.admin-venta-item__legend{
  font-weight:700;
  font-size:15px;
  padding:0;
  margin:0;
  color:#111827;
  float:none;
}
.admin-venta-item__remove{
  flex-shrink:0;
}
.admin-venta-item__grid{
  display:grid;
  gap:14px 16px;
  grid-template-columns:repeat(auto-fill, minmax(200px, 1fr));
  padding:14px 16px 16px;
}
.admin-venta-item__field--producto{
  grid-column:1 / -1;
}
.admin-venta-item__field--wide{
  grid-column:1 / -1;
}
.admin-venta-item__hint{
  grid-column:1 / -1;
  margin:0;
  font-size:13px;
  line-height:1.45;
}
.admin-venta-form .admin-form-card__grid label input,
.admin-venta-form .admin-form-card__grid label select,
.admin-venta-form .admin-form-card__grid label textarea{
  min-height:44px;
  font-size:16px;
}
.admin-venta-form .admin-form-card__grid label textarea{
  min-height:72px;
}
@media (max-width:900px){
  .admin-venta-form__form{
    gap:16px;
  }
  .admin-venta-item__grid{
    grid-template-columns:1fr;
  }
  .admin-venta-item__field--producto,
  .admin-venta-item__field--wide{
    grid-column:auto;
  }
  .admin-venta-resumen__grid{
    grid-template-columns:1fr;
  }
  .admin-venta-form-actions{
    flex-direction:column;
    align-items:stretch;
  }
  .admin-venta-form-actions .btn{
    width:100%;
    justify-content:center;
    min-height:48px;
  }
}
.admin-venta-totales{
  font-size:16px;
  font-weight:600;
  margin:16px 0;
}
.admin-stock-alerts{
  list-style:none;
  padding:0;
  margin:0;
}
.admin-stock-alerts__item{
  padding:8px 12px;
  border-radius:8px;
  margin:0 0 6px;
  font-size:14px;
}
.admin-panel__head{
  margin-bottom:20px;
}
.admin-panel__head h1{
  margin:0 0 8px;
}

/* Admin simplificado MAM store */
.is-hidden{
  display:none !important;
}
.admin-photo-picker{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:12px;
}
.admin-photo-picker__preview{
  width:min(100%, 220px);
  max-height:220px;
  object-fit:contain;
  border-radius:12px;
  border:1px solid var(--admin-border, rgba(0,0,0,.12));
  background:#fff;
}
.admin-photo-picker__preview--empty{
  width:120px;
  height:120px;
  background:var(--admin-surface-muted, rgba(0,0,0,.04));
}
.admin-photo-picker__btn{
  position:relative;
  overflow:hidden;
  min-height:48px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
.admin-photo-picker__input{
  position:absolute;
  inset:0;
  opacity:0;
  cursor:pointer;
  width:100%;
  height:100%;
}
.admin-form-card__field-secondary{
  opacity:.92;
  font-size:.95em;
}
.admin-subcategoria-field.is-hidden{
  display:none;
}
.admin-stock-simple__list{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-top:12px;
}
.admin-stock-card-simple{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:12px 16px;
  align-items:center;
  padding:14px 16px;
  border:1px solid var(--admin-border, rgba(0,0,0,.1));
  border-radius:12px;
  background:var(--admin-surface, #fff);
}
.admin-stock-card-simple__thumb{
  width:64px;
  height:64px;
  object-fit:cover;
  border-radius:8px;
  background:var(--admin-surface-muted, rgba(0,0,0,.04));
}
.admin-stock-card-simple__thumb--empty{
  display:block;
}
.admin-stock-card-simple__head{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  margin-bottom:8px;
}
.admin-stock-card-simple__name{
  font-size:1rem;
}
.admin-stock-field--simple input{
  min-height:48px;
  font-size:16px;
  max-width:140px;
}
.admin-stock-card-simple__actions .btn{
  min-height:48px;
  min-width:96px;
}
.admin-config-section{
  margin-top:24px;
}
.admin-config-section__table{
  margin-top:16px;
}
.admin-crud-form--sub{
  margin-top:40px;
  padding-top:8px;
  border-top:1px solid var(--admin-border, rgba(0,0,0,.08));
}
@media (max-width: 900px){
  .admin-stock-card-simple{
    grid-template-columns:64px 1fr;
    grid-template-areas:
      "media head"
      "media field"
      "actions actions";
  }
  .admin-stock-card-simple__media{ grid-area:media; }
  .admin-stock-card-simple__body{ grid-area:field; }
  .admin-stock-card-simple__head{ grid-area:head; }
  .admin-stock-card-simple__actions{
    grid-area:actions;
  }
  .admin-stock-card-simple__actions .btn{
    width:100%;
  }
  .admin-stock-field--simple input{
    max-width:none;
    width:100%;
  }
  .admin-product-form-actions .btn,
  .admin-form-card__actions .btn{
    min-height:48px;
  }
  .admin-nav__link,
  .admin-nav-post__btn{
    min-height:48px;
    display:flex;
    align-items:center;
  }
}

/* --- Ruleta promocional: experiencia nativa standalone (/ruleta/) --- */
.page-ruleta--native{
  --ruleta-green: rgb(0, 107, 58);
  --ruleta-green-dark: rgb(0, 82, 44);
  --ruleta-green-light: rgb(191, 230, 200);
  --ruleta-cream: rgb(255, 244, 214);
  --ruleta-gold: rgb(246, 201, 69);
  --ruleta-gold-deep: rgb(218, 168, 32);
  overflow:hidden;
}
.page-ruleta--native,
.page-ruleta--native .ruleta-native-shell{
  min-height:100vh;
  min-height:100dvh;
}
.page-ruleta--native .ruleta-native-shell{
  display:flex;
  flex-direction:column;
  position:relative;
  isolation:isolate;
  color:#123;
  background:
    radial-gradient(120% 80% at 50% -10%, rgba(191, 230, 200, .55) 0%, transparent 55%),
    radial-gradient(90% 60% at 100% 100%, rgba(246, 201, 69, .14) 0%, transparent 50%),
    linear-gradient(180deg, #f7fff9 0%, #fffef8 45%, #fff4d6 100%);
}
.page-ruleta--native .ruleta-native-shell::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:radial-gradient(rgba(0, 107, 58, .05) 1px, transparent 1px);
  background-size:20px 20px;
  opacity:.2;
  pointer-events:none;
  z-index:0;
}
.page-ruleta--native .ruleta-native-header,
.page-ruleta--native .ruleta-native-main,
.page-ruleta--native .ruleta-native-foot{
  position:relative;
  z-index:1;
}

.page-ruleta--native .ruleta-native-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:max(10px, env(safe-area-inset-top)) 16px 10px;
  flex-shrink:0;
}
.page-ruleta--native .ruleta-native-header__brand{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.page-ruleta--native .ruleta-native-header__logo{
  display:block;
  width:auto;
  height:30px;
  flex-shrink:0;
}
.page-ruleta--native .ruleta-native-header__chip{
  display:inline-flex;
  align-items:center;
  max-width:min(46vw, 220px);
  padding:6px 12px;
  border-radius:999px;
  background:rgba(255,255,255,.72);
  border:1px solid rgba(0, 107, 58, .2);
  color:var(--ruleta-green-dark);
  font-size:10px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  box-shadow:
    0 1px 0 rgba(255,255,255,.85) inset,
    0 4px 14px rgba(0, 60, 30, .08);
  backdrop-filter:blur(6px);
}
.page-ruleta--native .ruleta-native-header__logout{
  margin:0;
  flex-shrink:0;
}
.page-ruleta--native .ruleta-native-header__logout-btn{
  border:1px solid rgba(0, 107, 58, .22);
  background:rgba(255,255,255,.72);
  color:var(--ruleta-green-dark);
  border-radius:999px;
  padding:7px 12px;
  font-size:12px;
  font-weight:700;
  cursor:pointer;
}

.page-ruleta--native .ruleta-native-main{
  flex:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:100%;
  max-width:560px;
  margin:0 auto;
  padding:8px 16px 12px;
  min-height:0;
}
.page-ruleta--native .ruleta-native-hero{
  width:100%;
  text-align:center;
  padding:4px 8px 14px;
  flex-shrink:0;
}
.page-ruleta--native .ruleta-native-hero__title{
  margin:0;
  font-size:clamp(1.55rem, 6.5vw, 2.15rem);
  line-height:1.1;
  font-weight:800;
  color:#0a3d24;
  letter-spacing:-.03em;
  text-shadow:0 1px 0 rgba(255,255,255,.85);
}
.page-ruleta--native .ruleta-native-hero__sub{
  margin:10px auto 0;
  max-width:30ch;
  font-size:clamp(.95rem, 3.8vw, 1.05rem);
  line-height:1.5;
  color:#4b6356;
  text-align:center;
  font-weight:500;
  letter-spacing:.01em;
}
.page-ruleta--native .ruleta-native-body{
  width:100%;
  flex:1;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:0;
  position:relative;
}
.page-ruleta--native .ruleta-native-body::before{
  content:"";
  position:absolute;
  top:50%;
  left:50%;
  transform:translate(-50%, -58%);
  width:min(120vw, 520px);
  height:min(120vw, 520px);
  border-radius:50%;
  background:radial-gradient(circle, rgba(255,255,255,.92) 0%, rgba(191,230,200,.38) 42%, transparent 68%);
  pointer-events:none;
  z-index:0;
}
.page-ruleta--native .ruleta-native-body > *{
  position:relative;
  z-index:1;
}
.page-ruleta--native .ruleta-native-shell > .ruleta-native-prize{
  position:fixed;
  z-index:40;
}

.page-ruleta--native .ruleta-native-panel{
  width:100%;
  padding:18px 16px;
  border-radius:18px;
  background:rgba(255,255,255,.88);
  border:1px solid rgba(0, 107, 58, .12);
  box-shadow:0 12px 32px rgba(0, 60, 30, .08);
  text-align:center;
  font-size:15px;
  line-height:1.5;
  color:#334155;
}
.page-ruleta--native .ruleta-native-panel p{
  margin:0;
}
.page-ruleta--native .ruleta-native-panel--warn{
  border-color:rgba(246, 201, 69, .55);
  background:linear-gradient(180deg, #fffef8 0%, #fff4d6 100%);
}

.page-ruleta--native .ruleta-native-gate{
  width:min(100%, 400px);
  padding:24px 20px 20px;
  border-radius:24px;
  background:rgba(255,255,255,.92);
  border:1px solid rgba(0, 107, 58, .14);
  box-shadow:0 20px 50px rgba(0, 60, 30, .12);
  text-align:center;
}
.page-ruleta--native .ruleta-native-gate__icon{
  width:52px;
  height:52px;
  margin:0 auto 12px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:16px;
  background:linear-gradient(145deg, var(--ruleta-green-light), #fff);
  color:var(--ruleta-green);
}
.page-ruleta--native .ruleta-native-gate__eyebrow{
  margin:0;
  font-size:11px;
  font-weight:700;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--ruleta-green);
}
.page-ruleta--native .ruleta-native-gate__lead{
  margin:6px 0 16px;
  font-size:clamp(1.05rem, 4.2vw, 1.25rem);
  font-weight:800;
  color:#0f172a;
}
.page-ruleta--native .ruleta-native-gate__error{
  margin:0 0 12px;
  padding:10px 12px;
  border-radius:12px;
  background:#fef2f2;
  border:1px solid #fecaca;
  color:#991b1b;
  font-size:14px;
  text-align:left;
}
.page-ruleta--native .ruleta-native-gate__form{
  display:flex;
  flex-direction:column;
  gap:10px;
  text-align:left;
}
.page-ruleta--native .ruleta-native-gate__label{
  font-size:13px;
  font-weight:700;
  color:#475569;
}
.page-ruleta--native .ruleta-native-gate__input{
  width:100%;
  box-sizing:border-box;
  padding:16px 14px;
  border:2px solid rgba(0, 107, 58, .16);
  border-radius:14px;
  font-size:22px;
  letter-spacing:.14em;
  text-align:center;
  background:#fff;
  color:#0f172a;
}
.page-ruleta--native .ruleta-native-gate__form .ruleta-native-btn{
  width:100%;
  max-width:none;
  box-sizing:border-box;
}
.page-ruleta--native .ruleta-native-gate__input:focus{
  outline:none;
  border-color:var(--ruleta-green);
  box-shadow:0 0 0 4px rgba(0, 107, 58, .12);
}

.page-ruleta--native .ruleta-native-play{
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:16px;
}
.page-ruleta--native .ruleta-native-wheel-card{
  position:relative;
  width:min(100%, 440px);
  padding:16px;
  border-radius:999px;
  background:linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(255,244,214,.88) 100%);
  border:2px solid rgba(0, 107, 58, .16);
  box-shadow:
    0 0 0 1px rgba(255,255,255,.9) inset,
    0 1px 0 rgba(255,255,255,.65) inset,
    0 28px 64px rgba(0, 60, 30, .18),
    0 0 56px rgba(191, 230, 200, .5);
}
.page-ruleta--native .ruleta-native-wheel-card__glow{
  position:absolute;
  inset:-10%;
  border-radius:999px;
  background:radial-gradient(circle, rgba(246, 201, 69, .16) 0%, rgba(191,230,200,.12) 38%, transparent 72%);
  pointer-events:none;
  z-index:0;
}
.page-ruleta--native .ruleta-wheel-wrap{
  position:relative;
  z-index:1;
  width:100%;
  margin:0 auto;
  padding-top:2px;
}
.page-ruleta--native .ruleta-pointer{
  position:absolute;
  top:-11px;
  left:50%;
  transform:translateX(-50%);
  z-index:4;
  width:44px;
  height:54px;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  filter:drop-shadow(0 3px 5px rgba(0,40,20,.26)) drop-shadow(0 1px 0 rgba(255,255,255,.35));
  pointer-events:none;
}
.page-ruleta--native .ruleta-pointer__svg{
  display:block;
  width:clamp(36px, 9vw, 44px);
  height:auto;
}
.page-ruleta--native .ruleta-canvas{
  display:block;
  width:100%;
  height:auto;
  border-radius:50%;
  box-shadow:
    0 12px 36px rgba(0, 40, 20, .22),
    0 0 0 1px rgba(0, 82, 44, .08),
    0 0 32px rgba(0, 107, 58, .12);
}

.page-ruleta--native .ruleta-native-actions{
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  padding:0 4px;
}
.page-ruleta--native .ruleta-native-btn{
  appearance:none;
  border:0;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:min(100%, 340px);
  min-height:56px;
  padding:0 20px;
  border-radius:16px;
  font-size:17px;
  font-weight:800;
  letter-spacing:.02em;
  transition:transform .14s ease, box-shadow .14s ease, opacity .14s ease, filter .14s ease;
}
.page-ruleta--native .ruleta-native-btn:active:not(:disabled){
  transform:translateY(1px) scale(.985);
}
.page-ruleta--native .ruleta-native-btn--primary,
.page-ruleta--native .ruleta-native-btn--spin{
  color:#fff;
  background:linear-gradient(180deg, rgb(0, 138, 72) 0%, var(--ruleta-green) 52%, rgb(0, 90, 49) 100%);
  box-shadow:
    0 14px 32px rgba(0, 107, 58, .34),
    0 0 0 1px rgba(255,255,255,.28) inset,
    0 1px 0 rgba(255,255,255,.42) inset;
  text-shadow:0 1px 1px rgba(0,40,20,.25);
}
.page-ruleta--native .ruleta-native-btn--spin{
  min-height:62px;
  font-size:20px;
  border-radius:18px;
  letter-spacing:.03em;
}
.page-ruleta--native .ruleta-native-btn--spin:not(:disabled):not(.is-loading):not(.is-hidden){
  animation:ruleta-spin-idle-pulse 2.8s ease-in-out infinite;
}
.page-ruleta--native .ruleta-native-btn--spin:not(:disabled):not(.is-loading):not(.is-hidden):active{
  animation:none;
  box-shadow:
    0 6px 16px rgba(0, 107, 58, .28),
    0 0 0 1px rgba(255,255,255,.22) inset,
    0 1px 0 rgba(255,255,255,.3) inset;
  filter:brightness(.96);
}
@keyframes ruleta-spin-idle-pulse{
  0%, 100%{
    box-shadow:
      0 14px 32px rgba(0, 107, 58, .34),
      0 0 0 1px rgba(255,255,255,.28) inset,
      0 1px 0 rgba(255,255,255,.42) inset;
  }
  50%{
    box-shadow:
      0 18px 38px rgba(0, 107, 58, .4),
      0 0 0 1px rgba(255,255,255,.32) inset,
      0 1px 0 rgba(255,255,255,.5) inset,
      0 0 24px rgba(191, 230, 200, .35);
  }
}
.page-ruleta--native .ruleta-native-btn--spin.is-loading{
  opacity:.82;
  pointer-events:none;
}
.page-ruleta--native .ruleta-native-btn--spin.is-loading .ruleta-native-btn__label::after{
  content:"";
  display:inline-block;
  width:16px;
  height:16px;
  margin-left:10px;
  border:2px solid rgba(255,255,255,.35);
  border-top-color:#fff;
  border-radius:50%;
  vertical-align:-2px;
  animation:ruleta-spin-loader .7s linear infinite;
}
@keyframes ruleta-spin-loader{
  to{ transform:rotate(360deg); }
}
.page-ruleta--native .ruleta-native-btn--next{
  color:var(--ruleta-green-dark);
  background:rgba(255,255,255,.92);
  border:2px solid rgba(0, 107, 58, .18);
  box-shadow:0 8px 20px rgba(0, 60, 30, .08);
}

.page-ruleta--native .ruleta-native-prize{
  position:fixed;
  inset:0;
  z-index:40;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  width:100%;
  max-width:100vw;
  min-height:100vh;
  min-height:100dvh;
  padding:
    max(16px, env(safe-area-inset-top))
    max(16px, env(safe-area-inset-right))
    max(16px, env(safe-area-inset-bottom))
    max(16px, env(safe-area-inset-left));
  overflow-x:hidden;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.page-ruleta--native .ruleta-native-prize__backdrop{
  position:fixed;
  inset:0;
  background:rgba(0, 40, 20, .52);
  backdrop-filter:blur(5px);
  z-index:0;
}
.page-ruleta--native .ruleta-native-prize__sheet{
  position:relative;
  z-index:1;
  width:100%;
  max-width:420px;
  margin:0 auto;
  margin-block:auto;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:12px;
  flex-shrink:0;
}
.page-ruleta--native .ruleta-native-prize__card{
  width:100%;
  box-sizing:border-box;
  padding:26px 22px 22px;
  border-radius:24px 24px 20px 20px;
  text-align:center;
  display:flex;
  flex-direction:column;
  align-items:center;
  background:linear-gradient(165deg, #fffef8 0%, var(--ruleta-cream) 100%);
  border:2px solid var(--ruleta-prize-accent, var(--ruleta-gold));
  box-shadow:
    0 24px 60px rgba(0, 0, 0, .22),
    0 0 0 1px rgba(255,255,255,.65) inset;
  animation:ruleta-prize-pop .38s cubic-bezier(.2,.9,.2,1);
}
.page-ruleta--native .ruleta-native-prize__actions{
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:10px;
  width:100%;
  padding-bottom:max(4px, env(safe-area-inset-bottom));
}
.page-ruleta--native .ruleta-native-prize__actions .ruleta-native-btn{
  width:100%;
  max-width:340px;
  margin-left:auto;
  margin-right:auto;
}
.page-ruleta--native .ruleta-native-btn--ghost{
  color:var(--ruleta-green-dark);
  background:rgba(255,255,255,.88);
  border:1px solid rgba(0, 107, 58, .2);
  box-shadow:none;
  min-height:48px;
  font-size:15px;
  font-weight:700;
}
.page-ruleta--native .ruleta-native-shell--prize-open .ruleta-native-header{
  z-index:50;
}
.page-ruleta--native .ruleta-native-shell--prize-open .ruleta-native-play{
  filter:blur(1px) saturate(.92);
  opacity:.55;
}
@keyframes ruleta-prize-pop{
  from{ opacity:0; transform:translateY(12px); }
  to{ opacity:1; transform:none; }
}
.page-ruleta--native .ruleta-native-prize__badge{
  margin:0 auto 10px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:6px 12px;
  border-radius:999px;
  background:var(--ruleta-gold);
  color:#5c4100;
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.page-ruleta--native .ruleta-native-prize__title{
  margin:0 0 8px;
  width:100%;
  max-width:100%;
  font-size:clamp(1.45rem, 5vw, 1.9rem);
  line-height:1.15;
  color:var(--ruleta-green-dark);
  font-weight:800;
  text-align:center;
  overflow-wrap:break-word;
  word-break:break-word;
}
.page-ruleta--native .ruleta-native-prize__message{
  margin:0;
  width:100%;
  max-width:100%;
  font-size:clamp(.95rem, 3.6vw, 1.05rem);
  line-height:1.55;
  color:#334155;
  text-align:center;
  overflow-wrap:break-word;
  word-break:break-word;
}

.page-ruleta--native .ruleta-native-foot{
  flex-shrink:0;
  padding:8px 16px max(10px, env(safe-area-inset-bottom));
  text-align:center;
  font-size:11px;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:rgba(0, 82, 44, .55);
  font-weight:600;
}
.page-ruleta--native .is-hidden{
  display:none !important;
}

@media (max-width:640px){
  .page-ruleta--native .ruleta-native-main{
    padding:6px 12px 10px;
    justify-content:flex-start;
  }
  .page-ruleta--native .ruleta-native-hero{
    padding-bottom:10px;
  }
  .page-ruleta--native .ruleta-native-hero__sub{
    max-width:100%;
    padding:0 6px;
  }
  .page-ruleta--native .ruleta-native-wheel-card{
    padding:12px;
  }
  .page-ruleta--native .ruleta-native-btn{
    width:100%;
  }
  .page-ruleta--native .ruleta-pointer{
    top:-9px;
  }
  .page-ruleta--native .ruleta-native-prize{
    justify-content:center;
    padding-top:max(12px, env(safe-area-inset-top));
    padding-right:max(12px, env(safe-area-inset-right));
    padding-bottom:max(16px, calc(env(safe-area-inset-bottom) + 8vh));
    padding-left:max(12px, env(safe-area-inset-left));
  }
  .page-ruleta--native .ruleta-native-prize__sheet{
    width:100%;
    max-width:100%;
  }
  .page-ruleta--native .ruleta-native-prize__card{
    padding:22px 18px 20px;
  }
  .page-ruleta--native .ruleta-native-prize__actions .ruleta-native-btn{
    max-width:none;
  }
}
@media (min-height:740px){
  .page-ruleta--native .ruleta-native-main{
    justify-content:center;
  }
}

/* MAM Store: fondo trama + tipografía sobre layout Mandú */
.page-ruleta--mam.page-ruleta--native{
  --ruleta-green: rgb(119, 155, 115);
  --ruleta-green-dark: rgb(79, 107, 82);
  --ruleta-green-light: rgb(168, 196, 160);
  --ruleta-cream: rgb(250, 246, 238);
  --ruleta-gold: rgb(201, 130, 107);
  --ruleta-gold-deep: rgb(176, 110, 90);
  font-family:"Sour Gummy", system-ui, sans-serif;
}
.page-ruleta--mam.page-ruleta--native .ruleta-native-shell{
  background-color:#FAF7F0;
  background-image:
    radial-gradient(120% 80% at 50% -10%, rgba(168, 196, 160, .35) 0%, transparent 55%),
    radial-gradient(90% 60% at 100% 100%, rgba(201, 130, 107, .1) 0%, transparent 50%),
    url("fondo_trama.webp");
  background-repeat:no-repeat, no-repeat, repeat;
  background-position:50% -10%, 100% 100%, top left;
}
.page-ruleta--mam.page-ruleta--native .ruleta-native-shell::before{
  background-image:radial-gradient(rgba(79, 107, 82, .04) 1px, transparent 1px);
}
.page-ruleta--mam.page-ruleta--native .ruleta-native-header__logo{
  height:36px;
}
.page-ruleta--mam.page-ruleta--native .ruleta-native-hero__title{
  color:var(--ruleta-green-dark);
}
.page-ruleta--mam.page-ruleta--native .ruleta-native-header__chip,
.page-ruleta--mam.page-ruleta--native .ruleta-native-header__logout-btn{
  border-color:rgba(119, 155, 115, .22);
  color:var(--ruleta-green-dark);
}
.page-ruleta--mam.page-ruleta--native .ruleta-native-btn--primary,
.page-ruleta--mam.page-ruleta--native .ruleta-native-btn--spin{
  background:linear-gradient(180deg, rgb(143, 179, 139) 0%, var(--ruleta-green) 52%, rgb(79, 107, 82) 100%);
  box-shadow:
    0 14px 32px rgba(119, 155, 115, .34),
    0 0 0 1px rgba(255,255,255,.28) inset,
    0 1px 0 rgba(255,255,255,.42) inset;
}
.page-ruleta--mam.page-ruleta--native .ruleta-native-prize__backdrop{
  background:rgba(243, 219, 195, .52);
}

.mam-ruleta-admin-stats{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(160px, 1fr));
  gap:8px 16px;
  margin:0 0 16px;
  padding:12px 14px;
  border-radius:12px;
  background:var(--admin-surface-alt, rgba(0,0,0,.03));
  font-size:14px;
}
.mam-ruleta-admin-table td,
.mam-ruleta-admin-table th{
  font-size:13px;
}
.admin-form-card__subtitle{
  margin:28px 0 12px;
  font-size:1.05rem;
  font-weight:600;
}
.admin-list-compact{
  margin:8px 0 0 18px;
  padding:0;
}
.admin-list-compact li{
  margin:4px 0;
}

/* SEO Fase 2: categorías en home y footer */
.home-categories{
  margin-top:24px;
  padding-top:0;
  padding-bottom:32px;
}
@media (min-width:901px){
  .home-categories{
    margin-top:32px;
  }
}
.footer-links--catalog{
  flex-wrap:wrap;
  justify-content:center;
  gap:8px 14px;
  margin-top:4px;
}
.footer-links--catalog a{
  font-size:0.92rem;
}

