
/* Componente global de mensajes / alertas reutilizable */
.app-alert,
.workers-alert{
  position:fixed;
  top:24px;
  left:50%;
  transform:translateX(-50%);
  display:none;
  width:calc(100% - 40px);
  max-width:520px;
  padding:14px 18px;
  border-radius:14px;
  font-weight:bold;
  text-align:center;
  box-sizing:border-box;
  z-index:3000;
  box-shadow:0 16px 45px rgba(0,0,0,.35);
  backdrop-filter:blur(12px);
}

.app-alert.show,
.workers-alert.show{
  display:block;
}

.app-alert.success,
.workers-alert.success{
  background:rgba(34,197,94,.14);
  color:#86efac;
  border:1px solid rgba(34,197,94,.28);
}

.app-alert.error,
.workers-alert.error{
  background:rgba(239,68,68,.14);
  color:#fca5a5;
  border:1px solid rgba(239,68,68,.28);
}

.app-alert.warning,
.workers-alert.warning{
  background:rgba(245,158,11,.14);
  color:#fcd34d;
  border:1px solid rgba(245,158,11,.28);
}

.app-alert.info,
.workers-alert.info{
  background:rgba(59,130,246,.14);
  color:#93c5fd;
  border:1px solid rgba(59,130,246,.28);
}


/* Confirmación destacada de productos agregados al carrito */
.app-alert.cart-added{
  top:50%;
  width:min(92vw,560px);
  max-width:560px;
  min-height:96px;
  padding:20px 24px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:15px;
  transform:translate(-50%,-50%) scale(.96);
  background:linear-gradient(145deg,rgba(26,34,28,.98),rgba(16,19,17,.98));
  color:#f4fff7;
  border:1px solid rgba(99,224,142,.42);
  border-radius:22px;
  box-shadow:0 28px 80px rgba(0,0,0,.55),0 0 0 9999px rgba(0,0,0,.28);
  font-size:16px;
  line-height:1.45;
  text-align:left;
  animation:appCartNoticeIn .24s ease forwards;
  cursor:pointer;
  user-select:none;
}

.app-alert-cart-icon{
  flex:0 0 44px;
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#61df8f;
  color:#102015;
  font-size:24px;
  font-weight:900;
  box-shadow:0 8px 24px rgba(97,223,143,.25);
}

.app-alert-cart-copy{
  display:block;
  max-width:440px;
}

@keyframes appCartNoticeIn{
  from{opacity:0;transform:translate(-50%,-50%) scale(.9)}
  to{opacity:1;transform:translate(-50%,-50%) scale(1)}
}

@media(max-width:768px){
  .app-alert.cart-added{
    width:calc(100% - 34px);
    min-height:88px;
    padding:17px 18px;
    gap:12px;
    border-radius:19px;
    font-size:14px;
  }

  .app-alert-cart-icon{
    flex-basis:38px;
    width:38px;
    height:38px;
    font-size:20px;
  }
}

/* Capa que absorbe el primer clic de los avisos destacados. */
.app-alert-shield{
  position:fixed;
  inset:0;
  display:none;
  z-index:2999;
  background:rgba(0,0,0,.28);
  cursor:pointer;
}

.app-alert-shield.show{
  display:block;
}

/* Avisos destacados centrados: carrito, guardado del administrador y agotados. */
.app-alert.prominent{
  top:50%;
  width:min(92vw,560px);
  max-width:560px;
  min-height:96px;
  padding:20px 24px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:15px;
  transform:translate(-50%,-50%) scale(.96);
  border-radius:22px;
  box-shadow:0 28px 80px rgba(0,0,0,.55);
  font-size:16px;
  line-height:1.45;
  text-align:left;
  animation:appCartNoticeIn .24s ease forwards;
  cursor:pointer;
  user-select:none;
}

.app-alert.prominent.success{
  background:linear-gradient(145deg,rgba(26,34,28,.99),rgba(16,19,17,.99));
  color:#f4fff7;
  border:1px solid rgba(99,224,142,.42);
}

.app-alert.prominent.warning{
  background:linear-gradient(145deg,rgba(49,38,17,.99),rgba(25,21,14,.99));
  color:#fff8df;
  border:1px solid rgba(245,190,74,.55);
}

.app-alert.prominent.warning .app-alert-cart-icon{
  background:#f3bd4f;
  color:#2a210f;
  box-shadow:0 8px 24px rgba(243,189,79,.25);
}

.app-alert.prominent.error{
  background:linear-gradient(145deg,rgba(52,24,24,.99),rgba(25,15,15,.99));
  color:#fff1f1;
  border:1px solid rgba(248,113,113,.5);
}

.app-alert.prominent.error .app-alert-cart-icon{
  background:#f87171;
  color:#2a1010;
  box-shadow:0 8px 24px rgba(248,113,113,.24);
}

@media(max-width:768px){
  .app-alert.prominent{
    width:calc(100% - 34px);
    min-height:88px;
    padding:17px 18px;
    gap:12px;
    border-radius:19px;
    font-size:14px;
  }
}


.app-alert-shield{z-index:6000;}
.app-alert.prominent{z-index:6001;}


.app-alert-shield{z-index:22990!important}
.app-alert,.workers-alert,.app-alert.prominent{z-index:23000!important}
.app-alert-shield{z-index:199990!important}
.app-alert,.workers-alert,.app-alert.prominent{z-index:200000!important}



/* Modal global de confirmación reutilizable */
.app-confirm{
  position:fixed;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(0,0,0,.62);
  backdrop-filter:blur(10px);
  z-index:4200;
}
.app-confirm.show{display:flex;}
.app-confirm-card{
  width:min(520px, 100%);
  border:1px solid rgba(255,255,255,.14);
  border-radius:24px;
  background:linear-gradient(145deg,#181818,#101010);
  color:white;
  box-shadow:0 28px 80px rgba(0,0,0,.5);
  overflow:hidden;
}
.app-confirm-head{
  display:flex;
  gap:14px;
  align-items:flex-start;
  padding:22px 24px 12px;
}
.app-confirm-icon{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:16px;
  background:rgba(255,179,71,.14);
  color:#ffb347;
  font-size:22px;
  flex:0 0 auto;
}
.app-confirm-title{
  margin:0;
  font-size:22px;
  line-height:1.15;
}
.app-confirm-message{
  margin:7px 0 0;
  color:#d6d6d6;
  line-height:1.55;
  white-space:pre-line;
}
.app-confirm-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  padding:18px 24px 24px;
  flex-wrap:wrap;
}
.app-confirm-btn{
  border:0;
  border-radius:999px;
  padding:12px 18px;
  font-weight:800;
  cursor:pointer;
  transition:.2s ease;
}
.app-confirm-btn:hover{transform:translateY(-1px);filter:brightness(1.06);}
.app-confirm-cancel{background:rgba(255,255,255,.08);color:#f5f5f5;border:1px solid rgba(255,255,255,.12);}
.app-confirm-ok{background:#ffb347;color:#111;}
.app-confirm-danger{background:#ef4444;color:white;}
.app-confirm-warning{background:#f97316;color:#111;}
@media(max-width:560px){
  .app-confirm{align-items:flex-end;padding:12px;}
  .app-confirm-card{border-radius:22px;}
  .app-confirm-actions{flex-direction:column-reverse;}
  .app-confirm-btn{width:100%;}
}


.app-confirm{z-index:22000!important}
.app-confirm{z-index:190000!important}



/* HEADER DEL CATALOGO */

.catalogo-header{
  width:100%;
  padding:72px 20px 18px;
  text-align:center;
  background:#111;
  color:white;
}

.catalogo-header h1{
  margin:0 0 6px;
  font-size:clamp(42px, 4.2vw, 56px);
  line-height:1.05;
}

.catalogo-header > p{
  margin:0;
  font-size:17px;
  line-height:1.4;
  opacity:0.8;
}



/* SECCION */

.catalogo-section{

  background:#111;

  padding-bottom:40px;

}

/* TITULO CATEGORIA */

.catalogo-section-header{

  background:#111;

  padding:
  34px 80px 16px;

}

.catalogo-section-header h2{

  color:white;

  font-size:42px;

  font-weight:bold;

  position:relative;

  display:inline-block;

}

/* LINEA DECORATIVA */

.catalogo-section-header h2::after{

  content:"";

  position:absolute;

  left:0;

  bottom:-10px;

  width:70%;

  height:4px;

  border-radius:999px;

  background:#ffb347;

}


/* La primera categoria queda cerca de la cabecera para mostrar productos antes. */
.catalogo-header + .catalogo-section .catalogo-section-header{
  padding-top:12px;
}

@media(max-width:768px){
  .catalogo-header + .catalogo-section .catalogo-section-header{
    padding-top:10px;
  }
}



/* GRID */

.catalogo-grid{

  width:100%;

  display:grid;

  grid-template-columns:
  repeat(4, 1fr);

  gap:40px;

  padding:80px;

  background:#111;

}

/* CARD */

.catalogo-card{

  background:#1a1a1a;

  border-radius:30px;

  overflow:hidden;

  transition:0.4s ease;

  border:
  1px solid rgba(255,255,255,0.06);

}

/* HOVER */

.catalogo-card:hover{

  transform:
  translateY(-10px);

  box-shadow:
  0 20px 60px rgba(0,0,0,0.35);

}

/* IMAGEN */

.catalogo-image{

  width:100%;

  height:280px;

  display:flex;

  justify-content:center;

  align-items:center;

  padding:30px;

  background:#222;
  
  position:relative;

}

.catalogo-image img{

  max-width:100%;

  max-height:100%;

  object-fit:contain;

  transition:0.5s ease;

  filter:
  drop-shadow(
    0 25px 40px rgba(0,0,0,0.35)
  );

}

.catalogo-image.helados{

  background:
  linear-gradient(
    135deg,
    #ff512f,
    #dd2476
  );

}

/* YOGURT */

.catalogo-image.yogurt{

  background:
  linear-gradient(
    135deg,
    #56ab2f,
    #a8e063
  );

}

/* HOVER IMG */

.catalogo-card:hover img{

  transform:scale(1.05);

}

/* INFO */

.catalogo-info{

  padding:30px;

  color:white;

}

/* CATEGORIA */

.catalogo-category{

  display:inline-block;

  margin-bottom:15px;

  padding:8px 16px;

  border-radius:999px;

  background:#ffb347;

  color:#111;

  font-size:14px;

  font-weight:bold;

}

/* TITULO */

.catalogo-info h3{

  font-size:32px;

  margin-bottom:15px;

}

/* TEXTO */

.catalogo-info p{

  opacity:0.7;

  margin-bottom:20px;
  
  line-height:1.1;

}

/* PRECIO */

.catalogo-price{

  font-size:28px;

  font-weight:bold;

  margin-bottom:25px;

}

/* BOTON */

.catalogo-button{

  width:100%;

  border:none;

  padding:18px;

  border-radius:16px;

  background:#ffb347;

  color:#111;

  font-size:16px;

  font-weight:bold;

  cursor:pointer;

  transition:0.3s ease;

}

.catalogo-button:hover{

  background:#ffd27a;

  transform:translateY(-3px);

}




.catalogo-price > strong{display:block;font-size:1.08em;line-height:1.2}
.catalogo-price > span{display:block;margin-top:4px;font-size:12px;font-weight:700;opacity:.78}



.catalogo-price{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:4px;
  padding:0;
  margin:2px 0 24px;
  border:0;
  border-radius:0;
  background:none;
}
.catalogo-price-label{
  color:#c99a56;
  font-size:11px;
  font-weight:900;
  letter-spacing:.075em;
  text-transform:uppercase;
}
.catalogo-price > strong{
  display:block;
  color:#fff;
  font-size:28px;
  line-height:1.05;
  letter-spacing:-.025em;
}
.catalogo-price-quantity{
  display:block;
  margin-top:1px;
  color:rgba(255,255,255,.58);
  font-size:12px;
  font-weight:700;
}



/* COMBOS */

.combos-section{
  background:#111;
}

.combo-card{
  border:1px solid rgba(255,179,71,0.25);
}

.combo-card .catalogo-info h3{
  margin-bottom:12px;
}

.combo-card p{
  white-space:pre-line;
}

.combo-image{
  background:
  linear-gradient(
    135deg,
    #1f1c2c,
    #928dab
  );
}

.combo-card .catalogo-price{
  color:#ffb347;
}

.combo-button{
  width:100%;
  border:none;
  padding:18px;
  border-radius:16px;
  background:#ffb347;
  color:#111;
  font-size:16px;
  font-weight:bold;
  cursor:pointer;
  transition:0.3s ease;
}

.combo-button:hover{
  background:#ffd27a;
  transform:translateY(-3px);
}

.combo-description{
  max-height:48px;
  overflow:hidden;
  color:#ccc;
  line-height:1.5;
  margin-bottom:8px;
}

.combo-card.expanded .combo-description{
  max-height:none;
}

.combo-more{
  background:none;
  border:none;
  color:#ffb347;
  font-weight:bold;
  cursor:pointer;
  padding:0;
  margin-bottom:16px;
}

.combo-prices{
  display:flex;
  flex-direction:column;
  gap:6px;
  margin-bottom:22px;
}

.combo-regular{
  color:#aaa;
  text-decoration:line-through;
  font-size:14px;
}

.combo-final{
  color:#ffb347;
  font-size:28px;
}

.combo-save{
  color:#fff;
  font-size:14px;
}

.combo-status{
  position:absolute;
  right:14px;
  bottom:14px;
  display:inline-block;
  margin-bottom:12px;
  padding:7px 12px;
  border-radius:999px;
  font-size:12px;
  font-weight:bold;
  z-index:2;
}

.combo-status.available{
  background:rgba(80,200,120,0.9);
  color:#111;
}

.combo-status.soldout{
  background:rgba(255,80,80,0.9);
  color:white;
}




.combo-card .catalogo-info{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding-top:12px;
  padding-bottom:24px;
}
.combo-card .catalogo-info h3{margin:0 0 4px;line-height:1.08}
.combo-card .combo-description{margin:0;line-height:1.35;max-height:44px}
.combo-card .combo-more{margin:0 0 4px;align-self:flex-start}
.combo-card .catalogo-price{margin:0}
.combo-card .combo-prices{gap:3px;margin:0 0 10px}
.combo-card .combo-button{margin-top:auto;padding:15px 16px}
@media(max-width:700px){
  .combo-card .catalogo-info{gap:6px;padding:18px 16px}
  .combo-card .combo-prices{margin-bottom:6px}
}



@media(max-width:1100px){

  .catalogo-grid{
    grid-template-columns:repeat(2, 1fr);
    padding:40px;
  }

  .catalogo-image{
    height:220px;
  }

  .catalogo-info h3{
    font-size:26px;
  }

}


/* ========================= */
/* RESPONSIVE */
/* ========================= */

@media(max-width:768px){

  /* HEADER */

  .catalogo-header{
    /* Cabecera compacta también en móviles: conserva aire bajo la barra fija
       pero permite ver antes la primera fila de productos. */
    padding:68px 14px 10px;
  }

  .catalogo-header h1{
    margin-bottom:4px;
    font-size:32px;
    line-height:1.06;
  }

  .catalogo-header > p{
    font-size:14px;
    line-height:1.28;
  }

  .catalogo-section-header{

    padding:
    0 20px 14px;

  }

  .catalogo-section-header h2{

    font-size:30px;

  }

  /* GRID */

  .catalogo-grid{

    grid-template-columns:
    repeat(2, 1fr);

    gap:18px;

    padding:25px 16px;

  }

  /* CARD */

  .catalogo-card{

    border-radius:18px;

  }

  /* IMAGEN */

  .catalogo-image{

    height:auto;
    aspect-ratio:1 / 1;
    padding:12px;

  }
  
  .catalogo-image img{
    width:92%;
    height:92%;
    object-fit:contain;
  }

  /* INFO */

  .catalogo-info{

    padding:14px;

  }

  /* CATEGORIA */

  .catalogo-category{

    font-size:11px;

    padding:6px 12px;

  }

  /* TITULO */

  .catalogo-info h3{

    font-size:18px;
	
	line-height:1.1;

    margin-bottom:8px;

  }

  /* TEXTO */

  .catalogo-info p{

    font-size:12px;
	
	line-height:1.35;

    margin-bottom:10px;

  }

  /* PRECIO */

  .catalogo-price{

    font-size:16px;

    margin-bottom:12px;

  }

  /* BOTON */

  .catalogo-button,
  .combo-button{

    padding:10px;

    font-size:13px;

    border-radius:13px;

  }
  
  .combo-card .catalogo-info h3{
    font-size:23px;
    min-height:auto;
  }

  .combo-description{
    max-height:40px;
    font-size:13px;
    line-height:1.35;
  }

  .combo-final{
    font-size:24px;
  }

  .combo-prices{
    margin-bottom:14px;
  }

}






.modal-producto{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,0.75);
  display:none;
  justify-content:center;
  align-items:center;
  z-index:3000;
  padding:30px;
}

.modal-producto.active{
  display:flex;
}

.modal-content{
  width:min(1000px,95vw);
  height:82vh;
  max-height:720px;
  background:#151515;
  color:white;
  border-radius:30px;
  overflow:hidden;
  display:grid;
  grid-template-columns:45% 55%;
  position:relative;
}

.modal-close{
  position:absolute;
  top:20px;
  right:20px;
  width:42px;
  height:42px;
  border:none;
  border-radius:50%;
  background:white;
  color:#111;
  font-size:28px;
  cursor:pointer;
  z-index:2;
}

.modal-image{
  background:linear-gradient(135deg,#ff512f,#dd2476);
  display:flex;
  justify-content:center;
  align-items:center;
  padding:35px;
  min-height:100%;
  height:100%;
  position:relative;
}

.modal-image img{
  width:100%;
  max-width:430px;
  max-height:430px;
  object-fit:contain;
  filter:drop-shadow(0 30px 45px rgba(0,0,0,0.45));
}



@media (min-width: 769px){
  .modal-producto{
    padding:16px;
  }

  .modal-content{
    width:min(1120px, calc(100vw - 32px));
    height:min(740px, calc(100vh - 32px));
    max-height:none;
    grid-template-columns:minmax(390px, 44%) minmax(0, 56%);
    border:1px solid rgba(255,255,255,.08);
    box-shadow:0 28px 90px rgba(0,0,0,.58);
  }

  .modal-image{
    padding:24px;
    min-width:0;
  }

  .modal-image-stage{
    position:relative;
    width:100%;
    height:100%;
    min-height:0;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    border-radius:24px;
    background:rgba(255,255,255,.06);
    border:1px solid rgba(255,255,255,.1);
  }

  .modal-image img{
    width:88%;
    height:72%;
    max-width:none;
    max-height:none;
    object-fit:contain;
  }

  .modal-info-header{
    padding:30px 34px 12px;
  }

  .modal-info-header h2{
    margin:10px 0 6px;
    font-size:clamp(32px, 3.3vw, 44px);
    line-height:1.05;
  }

  .modal-info-body{
    min-height:0;
    padding:0 34px 28px;
    overflow:hidden;
    display:flex;
    flex-direction:column;
  }
}



.modal-stock-badge{
  position:absolute;
  right:16px;
  bottom:16px;
  padding:7px 12px;
  border-radius:999px;
  background:rgba(255,179,71,0.92);
  color:#111;
  font-size:12px;
  font-weight:bold;
  z-index:2;
  backdrop-filter:blur(6px);
  box-shadow:0 8px 22px rgba(0,0,0,0.25);
}

.modal-stock-badge.available{
  background:rgba(80,200,120,0.9);
  color:#111;
}

.modal-stock-badge.soldout{
  background:rgba(255,80,80,0.9);
  color:white;
}


@media (min-width:769px){
  .modal-stock-badge{
    right:18px;
    top:18px;
    bottom:auto;
    z-index:4;
  }
}



.modal-info{
  height:100%;
  padding:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}

.modal-info-header{
  padding:42px 40px 20px;
  flex:none;
  background:#151515;
  z-index:1;
}

.modal-info-body{
  flex:1;
  padding:0 40px 42px;
  overflow-y:auto;
}

.modal-info-body::-webkit-scrollbar{
  width:6px;
}

.modal-info-body::-webkit-scrollbar-thumb{
  background:#ffb347;
  border-radius:999px;
}

.modal-info-body::-webkit-scrollbar-track{
  background:#222;
}

#modal-category{
  color:#ffb347;
  font-size:14px;
  letter-spacing:3px;
  font-weight:bold;
}

.modal-info h2{
  font-size:46px;
  margin:20px 0;
}

.modal-info p{
  color:#ccc;
  line-height:1.6;
}

.modal-prices,
.modal-flavors{
  margin-top:30px;
}

.modal-prices h3,
.modal-flavors h3{
  color:#ffb347;
  margin-bottom:12px;
}


.modal-image-caption{
  position:absolute;
  left:18px;
  right:18px;
  bottom:18px;
  z-index:3;
  padding:14px 16px;
  border-radius:18px;
  background:linear-gradient(135deg,rgba(10,10,10,.88),rgba(25,25,25,.72));
  border:1px solid rgba(255,255,255,.13);
  box-shadow:0 14px 36px rgba(0,0,0,.3);
  backdrop-filter:blur(12px);
}

.modal-image-caption-type{
  display:block;
  margin-bottom:4px;
  color:#ffbd68;
  font-size:11px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.modal-image-caption strong{
  display:block;
  color:#fff;
  font-size:clamp(18px,2vw,26px);
  line-height:1.15;
}

.modal-image-caption p{
  margin:7px 0 0;
  color:rgba(255,255,255,.76);
  font-size:13px;
  line-height:1.35;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.modal-image-caption p[hidden]{display:none;}

@media (min-width:769px){
  .modal-info-body .modal-tabs{
    flex:0 0 auto;
  }

  .modal-panel.active{
    min-height:0;
    overflow:auto;
    scrollbar-width:none;
    padding-right:2px;
  }

  .modal-panel.active::-webkit-scrollbar{display:none;}

  .modal-info-body .modal-buy{
    flex:0 0 auto;
  }
}



.modal-button{
  margin-top:0;
  width:100%;
  padding:15px;
  border:none;
  border-radius:16px;
  background:#ffb347;
  color:#111;
  font-weight:bold;
  cursor:pointer;
}

#modal-flavors-list{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:12px;
  max-height:230px;
  overflow-y:auto;
}

.modal-flavor-tag:hover{
  background:#333;
}



.modal-purchase-actions{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:8px;
  width:100%;
  min-width:0;
}
.modal-purchase-actions .modal-button{
  width:100%;
  min-width:0;
  max-width:100%;
  margin:0;
  white-space:normal;
  overflow-wrap:anywhere;
  line-height:1.2;
}
@media (min-width:769px){
  .modal-purchase-column{
    grid-template-rows:auto minmax(118px,.58fr)!important;
  }
  .modal-buy{
    height:auto!important;
    min-height:0;
    overflow:hidden;
    gap:10px!important;
  }
  .modal-purchase-actions{
    gap:7px;
  }
  .modal-purchase-actions .modal-button{
    min-height:42px;
    padding:11px 12px;
  }
}
@media (max-width:768px){
  .modal-buy{
    width:100%;
    min-width:0;
    overflow:hidden;
  }
  .modal-purchase-actions{
    grid-template-columns:1fr;
  }
}



.modal-tabs{
  display:flex;
  gap:24px;
  margin:24px 0 22px;
  border-bottom:1px solid rgba(255,255,255,0.1);
}

.modal-tab{
  padding:0 0 12px;
  border:none;
  background:transparent;
  color:#aaa;
  font-weight:bold;
  cursor:pointer;
  position:relative;
}

.modal-tab[data-tab="precios"]{
  margin-left:auto;
}

.modal-tab.active{
  color:#ffb347;
}

.modal-panel{
  display:none;
}

.modal-panel.active{
  display:block;
}

.modal-tab.active::after{
  content:"";
  position:absolute;
  left:0;
  bottom:-1px;
  width:100%;
  height:3px;
  border-radius:999px;
  background:#ffb347;
}




#modal-surtidos-list{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:12px;
}

.modal-flavor-tag,
.modal-surtido-tag{
  min-height:42px;
  padding:10px 14px;
  border-radius:14px;
  background:#202020;
  border:1px solid rgba(255,255,255,0.08);
  color:#eee;
  font-size:14px;
  display:flex;
  justify-content:center;
  align-items:center;
  text-align:center;
  cursor:pointer;
  transition:0.3s ease;
}

.modal-surtido-tag:hover{
  background:#333;
}

.modal-flavor-tag.selected,
.modal-surtido-tag.selected{
  background:#ffb347;
  color:#111;
  border-color:#ffb347;
  font-weight:bold;
}

.modal-flavor-tag.disabled,
.modal-surtido-tag.disabled{
  opacity:0.65;
  border-color:rgba(255,107,107,0.35);
}

.modal-flavor-tag small,
.modal-surtido-tag small{
  display:block;
  font-size:11px;
  margin-top:10px;
  color:#ff6b6b;
}


/* Opciones compactas para evitar scroll general del modal */
@media (min-width:769px){
  #modal-flavors-list,
  #modal-surtidos-list{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:9px;
    max-height:154px;
    overflow:auto;
    scrollbar-width:none;
    padding-right:2px;
  }

  #modal-flavors-list::-webkit-scrollbar,
  #modal-surtidos-list::-webkit-scrollbar{display:none;}

  .modal-flavor-tag,
  .modal-surtido-tag{
    min-height:38px;
    padding:9px 10px;
    border-radius:12px;
    font-size:13px;
  }
}


.modal-flavor-tag.disabled,
.modal-surtido-tag.disabled{
  opacity:1;
  border-color:rgba(255,255,255,0.08);
  cursor:pointer;
}



.quantity-box{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  margin-bottom:10px;
}

.quantity-box button{
  width:36px;
  height:36px;
  border:none;
  border-radius:10px;
  background:#252525;
  color:white;
  font-size:20px;
  cursor:pointer;
}

#qty-value{
  min-width:40px;
  text-align:center;
  font-size:20px;
  font-weight:bold;
}

.subtotal-box{
  margin-bottom:14px;
  font-size:16px;
  text-align:center;
}

#modal-subtotal{
  color:#ffb347;
  font-weight:bold;
}

.modal-buy{
  margin-top:22px;
  padding:16px;
  background:#1f1f1f;
  border-radius:20px;
  border:1px solid rgba(255,255,255,0.08);
}

.modal-buy-title{
  color:#ffb347;
  font-size:14px;
  font-weight:bold;
  text-align:center;
  margin-bottom:14px;
}

.modal-buy-hidden{
  display:none;
}

.buy-type{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-bottom:14px;
}

.buy-type-btn{
  padding:12px;
  border:none;
  border-radius:14px;
  background:#252525;
  color:white;
  font-weight:bold;
  cursor:pointer;
  font-size:14px;
}

.buy-type-btn.active{
  background:#ffb347;
  color:#111;
}

.buy-type-hidden{
  display:none;
}

.buy-type-full{
  grid-column:1 / -1;
}

.buy-summary-row{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:28px;
  margin-bottom:14px;
}

.buy-summary-row .quantity-box,
.buy-summary-row .subtotal-box{
  margin-bottom:0;
}




@media (min-width:769px){
  .modal-buy{
    margin-top:14px;
    padding:13px 14px;
    border-radius:17px;
  }
  .modal-buy-title{margin-bottom:10px;}
  .buy-type{margin-bottom:10px;}
  .buy-type-btn{padding:10px;}
  .buy-summary-row{margin-bottom:10px;}
}


#qty-value{
  width:58px;
  min-width:58px;
  height:36px;
  padding:0 7px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:10px;
  outline:none;
  background:#171717;
  color:#fff;
  text-align:center;
  font:800 18px/1 Arial,sans-serif;
  appearance:textfield;
  -moz-appearance:textfield;
}
#qty-value::-webkit-inner-spin-button,
#qty-value::-webkit-outer-spin-button{
  margin:0;
  -webkit-appearance:none;
}
#qty-value:focus{
  border-color:#ffb347;
  box-shadow:0 0 0 3px rgba(255,179,71,.12);
}



/* MÓVIL */
@media(max-width:768px){

  .modal-content{
    grid-template-columns:1fr;
    max-height:90vh;
    overflow-y:auto;
  }

  .modal-image{
    min-height:auto;
    padding:18px;
  }

  .modal-image img{
    max-height:150px;
  }

  .modal-info{
    max-height:none;
    overflow:visible;
    padding:0;
  }

  .modal-info h2{
    font-size:34px;
  }
  
   .modal-info-header{
    padding:22px 20px 12px;
  }
  
  .modal-info-header h2{
    font-size:30px;
    margin:10px 0;
  }

  .modal-info-body{
    padding:0 20px 22px;
  }

  .modal-tabs{
    margin:16px 0;
  }

  #modal-flavors-list{
    grid-template-columns:repeat(3, 1fr);
	font-size:8px;
	gap:10px;
  }
  
  .buy-summary-row{
    flex-direction:column;
    gap:10px;
  }
  
  .modal-stock-badge{
    right:10px;
    bottom:10px;
    padding:6px 10px;
    font-size:11px;
    max-width:72%;
    line-height:1.2;
    text-align:center;
  }


@media(max-width:768px){
  .modal-image-stage{
    position:relative;
    width:100%;
    min-height:190px;
    display:flex;
    align-items:center;
    justify-content:center;
  }

  .modal-image-caption{
    left:8px;
    right:8px;
    bottom:8px;
    padding:10px 12px;
    border-radius:14px;
  }

  .modal-image-caption strong{font-size:17px;}
  .modal-image-caption p{font-size:11px;-webkit-line-clamp:1;}
  .modal-image-caption-type{font-size:9px;}

  .modal-stock-badge{
    top:8px;
    right:8px;
    bottom:auto;
  }
}

}




.modal-detail-workspace{
  min-height:0;
  flex:1;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(250px,.82fr);
  gap:18px;
}

.modal-choice-column,
.modal-purchase-column{
  min-width:0;
  min-height:0;
}

.modal-choice-column{
  display:flex;
  flex-direction:column;
  padding:0 2px 2px 0;
}

.modal-panels-wrap{
  flex:1;
  min-height:0;
  border-radius:20px;
  background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.018));
  border:1px solid rgba(255,255,255,.08);
  padding:14px;
  overflow:hidden;
}

.modal-panel.active{
  height:100%;
}

.modal-purchase-column{
  display:flex;
  flex-direction:column;
  gap:12px;
  padding-top:23px;
}

.purchase-selection-card{
  padding:18px;
  border-radius:20px;
  background:
    radial-gradient(circle at 100% 0,rgba(255,179,71,.18),transparent 44%),
    linear-gradient(145deg,#222,#191919);
  border:1px solid rgba(255,179,71,.2);
  box-shadow:0 14px 34px rgba(0,0,0,.22);
}

.purchase-selection-kicker{
  display:block;
  margin-bottom:7px;
  color:#ffb347;
  font-size:10px;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.purchase-selection-card strong{
  display:block;
  color:#fff;
  font-size:19px;
  line-height:1.2;
}

.purchase-selection-card > p{
  min-height:38px;
  margin:7px 0 14px;
  color:#aaa;
  font-size:12px;
  line-height:1.45;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.purchase-selection-meta{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:9px;
  margin:0;
}

.purchase-selection-meta > div{
  min-width:0;
  padding:10px 11px;
  border-radius:13px;
  background:rgba(255,255,255,.045);
  border:1px solid rgba(255,255,255,.07);
}

.purchase-selection-meta dt{
  color:#777;
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.07em;
}

.purchase-selection-meta dd{
  margin:4px 0 0;
  color:#eee;
  font-size:12px;
  font-weight:800;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.modal-price-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:11px;
}

.modal-price-card{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  width:100%;
  padding:15px 16px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:17px;
  background:linear-gradient(145deg,#222,#1b1b1b);
  color:#fff;
  text-align:left;
  transition:transform .2s ease,border-color .2s ease,background .2s ease;
}

button.modal-price-card{cursor:pointer;}
button.modal-price-card:hover{
  transform:translateY(-2px);
  border-color:rgba(255,179,71,.45);
}

.modal-price-card.is-selected{
  border-color:#ffb347;
  background:linear-gradient(145deg,rgba(255,179,71,.18),#202020);
  box-shadow:0 10px 28px rgba(255,179,71,.11);
}

.modal-price-copy span{
  display:block;
  color:#ffb347;
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.modal-price-copy small{
  display:block;
  margin-top:5px;
  color:#888;
  font-size:11px;
}

.modal-price-value{
  color:#fff;
  font-size:22px;
  font-weight:900;
  white-space:nowrap;
}

.modal-buy{
  margin-top:0;
  flex:1;
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:0;
}

.subtotal-box{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:2px;
  color:#858585;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.06em;
}

#modal-subtotal{
  font-size:20px;
  letter-spacing:0;
  text-transform:none;
}

@media (min-width:769px){
  .modal-content{
    width:min(1240px,calc(100vw - 30px));
    grid-template-columns:minmax(360px,38%) minmax(0,62%);
  }

  .modal-info-header{
    padding:24px 28px 8px;
  }

  .modal-info-header h2{
    margin:7px 0 4px;
    font-size:clamp(29px,3vw,40px);
  }

  .modal-info-body{
    padding:0 28px 25px;
  }

  .modal-tabs{
    margin:16px 0 12px;
    gap:18px;
  }

  #modal-flavors-list,
  #modal-surtidos-list{
    grid-template-columns:1fr;
    max-height:100%;
    align-content:start;
    overflow-y:auto;
  }

  .modal-flavor-tag,
  .modal-surtido-tag{
    justify-content:flex-start;
    min-height:46px;
    padding:11px 13px;
    text-align:left;
  }

  .modal-image-caption{
    left:14px;
    right:14px;
    bottom:14px;
  }
}

/* Móvil: modal casi a pantalla completa y compra siempre accesible */
@media (max-width:768px){
  .modal-producto{
    padding:0;
    align-items:flex-end;
  }

  .modal-content{
    width:100%;
    height:min(96dvh,920px);
    max-height:96dvh;
    border-radius:24px 24px 0 0;
    overflow:hidden;
    grid-template-columns:1fr;
    grid-template-rows:190px minmax(0,1fr);
  }

  .modal-close{
    top:10px;
    right:10px;
    width:38px;
    height:38px;
    font-size:24px;
  }

  .modal-image{
    min-height:0;
    height:190px;
    padding:10px 14px;
  }

  .modal-image-stage{
    min-height:0;
    height:100%;
    border-radius:18px;
  }

  .modal-image img{
    width:82%;
    height:72%;
    max-height:none;
  }

  .modal-image-caption{
    left:8px;
    right:8px;
    bottom:7px;
    padding:8px 11px;
  }

  .modal-image-caption strong{font-size:15px;}
  .modal-image-caption p{margin-top:3px;font-size:10px;}

  .modal-info{
    min-height:0;
    height:100%;
    overflow:hidden;
  }

  .modal-info-header{
    padding:11px 16px 3px;
  }

  .modal-info-header h2{
    margin:3px 0 1px;
    font-size:23px;
    line-height:1.05;
  }

  #modal-category{
    font-size:10px;
    letter-spacing:2px;
  }

  #modal-package{
    margin:2px 0 0;
    font-size:11px;
    line-height:1.2;
  }

  .modal-info-body{
    min-height:0;
    padding:0 14px 10px;
    overflow:hidden;
    display:flex;
  }

  .modal-detail-workspace{
    width:100%;
    grid-template-columns:1fr;
    grid-template-rows:minmax(0,1fr) auto;
    gap:8px;
  }

  .modal-choice-column{
    min-height:0;
  }

  .modal-tabs{
    flex:none;
    margin:8px 0 7px;
    gap:18px;
  }

  .modal-tab{
    padding-bottom:8px;
    font-size:12px;
  }

  .modal-panels-wrap{
    min-height:0;
    padding:8px;
    border-radius:15px;
  }

  .modal-panel.active{
    overflow:hidden;
  }

  #modal-flavors-list,
  #modal-surtidos-list,
  .modal-price-grid{
    display:flex;
    gap:8px;
    max-height:none;
    height:100%;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x proximity;
    scrollbar-width:none;
    align-items:stretch;
  }

  #modal-flavors-list::-webkit-scrollbar,
  #modal-surtidos-list::-webkit-scrollbar,
  .modal-price-grid::-webkit-scrollbar{display:none;}

  .modal-flavor-tag,
  .modal-surtido-tag{
    flex:0 0 min(42vw,145px);
    min-height:54px;
    padding:9px 10px;
    scroll-snap-align:start;
    font-size:11px;
  }

  .modal-price-card{
    flex:0 0 min(62vw,210px);
    min-height:72px;
    padding:11px 12px;
    border-radius:14px;
  }

  .modal-price-value{font-size:18px;}

  .modal-purchase-column{
    padding-top:0;
    gap:6px;
  }

  .purchase-selection-card{
    display:none;
  }

  .modal-buy{
    flex:none;
    margin:0;
    padding:9px;
    border-radius:15px;
  }

  .modal-buy-title{
    display:none;
  }

  .buy-type{
    margin-bottom:7px;
    gap:7px;
  }

  .buy-type-btn{
    padding:8px 7px;
    border-radius:10px;
    font-size:11px;
  }

  .buy-summary-row{
    flex-direction:row;
    justify-content:space-between;
    gap:8px;
    margin-bottom:7px;
  }

  .quantity-box{
    gap:7px;
  }

  .quantity-box button{
    width:31px;
    height:31px;
    border-radius:9px;
    font-size:17px;
  }

  #qty-value{
    min-width:30px;
    font-size:16px;
  }

  .subtotal-box{
    align-items:flex-end;
  }

  #modal-subtotal{font-size:17px;}

  .modal-button{
    min-height:40px;
    padding:10px 14px;
    border-radius:12px;
  }
}

@media (max-width:390px), (max-height:700px) and (max-width:768px){
  .modal-content{
    height:98dvh;
    max-height:98dvh;
    grid-template-rows:154px minmax(0,1fr);
  }

  .modal-image{height:154px;}
  .modal-info-header h2{font-size:20px;}
  .modal-info-header{padding-top:8px;}
  .modal-flavor-tag,
  .modal-surtido-tag{min-height:48px;}
}



.modal-price-card{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:10px;
  padding:17px;
  overflow:hidden;
}
.modal-price-card__header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
}
.modal-price-card__title{
  color:#ffb347;
  font-size:12px;
  font-weight:900;
  letter-spacing:.055em;
  text-transform:uppercase;
}
.modal-price-card__amount{
  color:#fff;
  font-size:21px;
  font-weight:950;
  line-height:1;
  text-align:right;
  white-space:nowrap;
}
.modal-price-card__amount small{
  display:block;
  margin-top:5px;
  color:#a7a7a7;
  font-size:10px;
  font-weight:800;
}
.modal-price-card__subtitle{color:#aaa;font-size:12px;font-weight:700}
.modal-price-card__row,
.modal-price-card__minimum{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding-top:10px;
  border-top:1px solid rgba(255,255,255,.08);
  color:#bcbcbc;
  font-size:12px;
}
.modal-price-card__row strong,.modal-price-card__minimum strong{color:#fff;text-align:right}
.modal-price-card__saving{
  align-self:flex-start;
  padding:7px 10px;
  border-radius:999px;
  background:rgba(83,200,131,.13);
  color:#7de2a7;
  font-size:11px;
  font-weight:900;
}
.modal-price-card__minimum{
  margin:2px -17px -17px;
  padding:11px 17px;
  background:rgba(255,179,71,.07);
}
.modal-price-invitation{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:18px;
  border:1px solid rgba(255,179,71,.3);
  border-radius:18px;
  background:linear-gradient(145deg,rgba(255,179,71,.14),rgba(255,255,255,.035));
}
.modal-price-invitation__eyebrow{color:#ffb347;font-size:10px;font-weight:950;letter-spacing:.09em;text-transform:uppercase}
.modal-price-invitation strong{font-size:17px;color:#fff}
.modal-price-invitation p{margin:0;color:#aaa;font-size:12px;line-height:1.5}
.modal-price-invitation__button{
  align-self:flex-start;
  margin-top:3px;
  padding:10px 13px;
  border-radius:11px;
  background:#ffb347;
  color:#181818;
  font-size:12px;
  font-weight:950;
  text-decoration:none;
}
@media(max-width:560px){
  .modal-price-card__header,.modal-price-card__row,.modal-price-card__minimum{gap:8px}
  .modal-price-card__amount{font-size:19px}
}




.modal-detail-workspace,
.modal-choice-column,
.modal-purchase-column,
.modal-panel,
.modal-image img,
.modal-image-caption{
  transition:opacity .2s ease,transform .2s ease,grid-template-columns .25s ease;
}

.purchase-selection-inline{
  margin-bottom:12px;
  padding:0 0 12px;
  border-bottom:1px solid rgba(255,255,255,.08);
}

.purchase-selection-inline > p{
  margin:6px 0 10px;
  color:#aaa;
  font-size:12px;
  line-height:1.4;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.modal-stock-card{
  position:relative;
  overflow:hidden;
  padding:20px;
  border-radius:20px;
  border:1px solid rgba(255,255,255,.09);
  background:linear-gradient(145deg,#222,#191919);
  box-shadow:0 14px 34px rgba(0,0,0,.22);
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.modal-stock-card::before{
  content:"";
  position:absolute;
  width:120px;
  height:120px;
  right:-52px;
  top:-58px;
  border-radius:50%;
  background:rgba(255,179,71,.12);
  filter:blur(1px);
}

.modal-stock-card-kicker{
  position:relative;
  color:#ffb347;
  font-size:10px;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
}

.modal-stock-card strong{
  position:relative;
  display:block;
  margin-top:8px;
  color:#fff;
  font-size:22px;
  line-height:1.15;
}

.modal-stock-card p{
  position:relative;
  margin:8px 0 0;
  color:#aaa;
  font-size:12px;
  line-height:1.5;
}

.modal-stock-card.is-available{
  border-color:rgba(80,200,120,.3);
  background:linear-gradient(145deg,rgba(80,200,120,.12),#191919 62%);
}
.modal-stock-card.is-available .modal-stock-card-kicker,
.modal-stock-card.is-available strong{color:#8ee7ab;}

.modal-stock-card.is-buildable{
  border-color:rgba(255,179,71,.36);
  background:linear-gradient(145deg,rgba(255,179,71,.14),#191919 62%);
}

.modal-stock-card.is-soldout{
  border-color:rgba(255,92,92,.28);
  background:linear-gradient(145deg,rgba(255,92,92,.11),#191919 62%);
}
.modal-stock-card.is-soldout .modal-stock-card-kicker,
.modal-stock-card.is-soldout strong{color:#ff8d8d;}

@media (min-width:769px){
  .modal-detail-workspace{
    grid-template-columns:minmax(0,1fr) minmax(270px,.84fr);
    gap:18px;
  }

  .modal-purchase-column{
    padding-top:57px;
    display:grid;
    grid-template-rows:minmax(0,1.15fr) minmax(0,.85fr);
    gap:12px;
  }

  .modal-buy{
    height:100%;
    margin:0;
    padding:16px;
    justify-content:center;
  }

  .modal-stock-card{
    min-height:0;
  }

  .modal-stock-badge{
    display:none !important;
  }

  .modal-image img{
    height:76%;
    transform:translateY(-4%);
  }

  .modal-image-caption{
    bottom:16px;
  }

  .modal-detail-workspace.is-prices-tab{
    grid-template-columns:minmax(0,1fr);
  }

  .modal-detail-workspace.is-prices-tab .modal-purchase-column{
    display:none;
  }

  .modal-detail-workspace.is-prices-tab .modal-price-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-content:start;
  }

  .modal-detail-workspace.is-prices-tab .modal-panels-wrap{
    padding:18px;
  }
}

@media (max-width:768px){
  .modal-stock-badge{
    display:none !important;
  }

  .modal-image{
    padding-top:8px;
  }

  .modal-image-stage{
    padding-top:4px;
  }

  .modal-image img{
    width:78%;
    height:66%;
    transform:translateY(-6px);
  }

  .modal-image-caption{
    left:8px;
    right:8px;
    bottom:6px;
    padding:7px 10px;
  }

  .modal-image-caption-type{font-size:8px;}
  .modal-image-caption strong{font-size:14px;}
  .modal-image-caption p{font-size:9px;line-height:1.25;}

  .modal-flavor-tag,
  .modal-surtido-tag{
    flex-basis:min(31vw,112px);
    min-height:44px;
    padding:7px 8px;
    border-radius:12px;
    font-size:10px;
  }

  .modal-price-card{
    flex-basis:min(62vw,210px);
    min-height:72px;
    padding:11px 12px;
  }

  .modal-purchase-column{
    display:grid;
    grid-template-columns:1fr;
  }

  .modal-stock-card{
    display:none;
  }

  .purchase-selection-inline{
    display:none;
  }

  .modal-detail-workspace.is-prices-tab{
    grid-template-rows:minmax(0,1fr);
  }

  .modal-detail-workspace.is-prices-tab .modal-purchase-column{
    display:none;
  }

  .modal-detail-workspace.is-prices-tab .modal-panels-wrap{
    min-height:108px;
  }
}




@media (min-width:769px){
  /* La compra queda limpia: se retira el resumen duplicado de selección. */
  .purchase-selection-inline{
    display:none !important;
  }

  .modal-purchase-column{
    padding-top:57px;
    grid-template-rows:minmax(0,1fr) minmax(138px,.58fr);
    align-items:stretch;
  }

  .modal-buy{
    min-height:0;
    padding:20px;
    justify-content:center;
    gap:14px;
  }

  .modal-buy-title{
    margin:0;
    color:#e9e9e9;
    font-size:13px;
  }

  .buy-type{
    margin:0;
  }

  .buy-type-btn{
    min-height:44px;
  }

  .buy-summary-row{
    margin:0;
    justify-content:space-between;
  }

  .modal-button{
    margin-top:2px;
    min-height:46px;
  }
}

@media (max-width:768px){
  /* Leyenda más compacta: deja respirar la imagen y no invade el cierre. */
  .modal-image-caption{
    left:14px;
    right:auto;
    width:min(76%,330px);
    max-width:calc(100% - 70px);
    bottom:8px;
    padding:7px 10px;
    border-radius:13px;
  }

  .modal-image-caption.has-description{
    width:min(78%,340px);
  }

  .modal-image-caption strong{
    font-size:13px;
    line-height:1.1;
  }

  .modal-image-caption p{
    margin-top:2px;
    font-size:8.5px;
    line-height:1.2;
    -webkit-line-clamp:1;
  }

  .modal-image-caption-type{
    font-size:7.5px;
  }

  /* Sabores y surtidos más bajos para una selección rápida. */
  .modal-flavor-tag,
  .modal-surtido-tag{
    flex-basis:min(31vw,112px);
    min-height:36px;
    max-height:42px;
    padding:6px 8px;
    border-radius:11px;
    font-size:9px;
    line-height:1.15;
  }

  /* Precios conservan lectura clara, pero ya no ocupan media pantalla. */
  .modal-price-card{
    flex-basis:min(58vw,190px);
    min-height:58px;
    max-height:68px;
    padding:9px 10px;
    border-radius:13px;
    gap:8px;
  }

  .modal-price-copy span{
    font-size:9px;
    line-height:1.15;
  }

  .modal-price-copy small{
    margin-top:3px;
    font-size:9px;
  }

  .modal-price-value{
    font-size:17px;
  }

  .modal-panels-wrap{
    min-height:58px;
  }

  /* El estado se muestra bajo las opciones y antes de comprar. */
  .modal-purchase-column{
    gap:7px;
  }

  .modal-stock-card{
    display:flex;
    order:1;
    min-height:auto;
    padding:9px 12px;
    border-radius:13px;
    box-shadow:none;
  }

  .modal-stock-card::before{
    width:72px;
    height:72px;
    right:-30px;
    top:-38px;
  }

  .modal-stock-card-kicker{
    font-size:7px;
    letter-spacing:.13em;
  }

  .modal-stock-card strong{
    margin-top:3px;
    font-size:14px;
  }

  .modal-stock-card p{
    margin-top:3px;
    font-size:9px;
    line-height:1.25;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }

  .modal-buy{
    order:2;
  }

  /* En precios se conserva el modo informativo, sin compra ni stock. */
  .modal-detail-workspace.is-prices-tab .modal-purchase-column{
    display:none;
  }

  .modal-detail-workspace.is-prices-tab .modal-panels-wrap{
    min-height:76px;
  }
}

@media (max-width:390px), (max-height:700px) and (max-width:768px){
  .modal-flavor-tag,
  .modal-surtido-tag{
    min-height:34px;
    max-height:38px;
  }

  .modal-price-card{
    min-height:54px;
    max-height:62px;
  }

  .modal-stock-card{
    padding:7px 10px;
  }
}



.modal-price-copy em{
  display:block;
  margin-top:5px;
  color:#8fdba9;
  font-size:10px;
  font-style:normal;
  line-height:1.25;
}

.buy-type-btn,
.modal-button,
.quantity-box button{
  position:relative;
  overflow:hidden;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease;
}

.buy-type-btn:hover,
.modal-button:hover,
.quantity-box button:hover{
  transform:translateY(-2px);
}

.buy-type-btn:active,
.modal-button:active,
.quantity-box button:active{
  transform:translateY(0) scale(.97);
}

.buy-type-btn{
  border:1px solid rgba(255,255,255,.1);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}

.buy-type-btn.active{
  box-shadow:0 10px 24px rgba(255,179,71,.2),inset 0 1px 0 rgba(255,255,255,.32);
}

.modal-button{
  box-shadow:0 12px 28px rgba(255,179,71,.18),inset 0 1px 0 rgba(255,255,255,.28);
}

@media(max-width:768px){
  .modal-image-caption{
    display:none !important;
  }

  .modal-image-stage{
    min-height:178px;
  }

  .modal-image img{
    width:88%;
    height:78%;
    max-height:178px;
    transform:translateY(-2px);
  }

  .modal-flavor-tag,
  .modal-surtido-tag{
    font-size:11px;
    font-weight:700;
    letter-spacing:.01em;
  }

  .modal-price-card{
    min-height:82px;
    max-height:none;
  }

  .modal-price-copy em{
    font-size:8.5px;
  }

  .buy-type-btn{
    min-height:42px;
    border-radius:13px;
    font-size:12px;
  }

  .modal-button{
    min-height:44px;
    border-radius:13px;
    font-size:14px;
  }

  .quantity-box button{
    width:34px;
    height:34px;
  }
}


.modal-mobile-stock-anchor{display:none;}

@media(max-width:768px){
  .modal-mobile-stock-anchor{
    display:block;
    padding:8px 14px 0;
    background:#111;
  }

  .modal-mobile-stock-anchor .modal-stock-card{
    display:flex;
    width:100%;
    min-height:auto;
    margin:0;
    padding:10px 12px;
    border-radius:14px;
    box-shadow:none;
  }

  .modal-mobile-stock-anchor .modal-stock-card strong{
    margin-top:3px;
    font-size:14px;
  }

  .modal-mobile-stock-anchor .modal-stock-card p{
    margin-top:3px;
    font-size:9px;
    line-height:1.25;
  }

  .modal-detail-workspace.is-prices-tab .modal-price-grid{
    display:grid;
    grid-auto-flow:column;
    grid-template-rows:repeat(2,minmax(112px,auto));
    grid-auto-columns:calc((100% - 10px)/2);
    gap:10px;
    overflow-x:auto;
    overflow-y:hidden;
    padding:2px 2px 8px;
    scroll-snap-type:x proximity;
    scrollbar-width:thin;
  }

  .modal-detail-workspace.is-prices-tab .modal-price-card,
  .modal-detail-workspace.is-prices-tab .modal-price-invitation{
    width:100%;
    min-width:0;
    min-height:112px;
    max-height:none;
    padding:11px;
    gap:7px;
    border-radius:14px;
    scroll-snap-align:start;
  }

  .modal-detail-workspace.is-prices-tab .modal-price-card__header{
    display:block;
  }

  .modal-detail-workspace.is-prices-tab .modal-price-card__title{
    display:block;
    font-size:9px;
    line-height:1.2;
  }

  .modal-detail-workspace.is-prices-tab .modal-price-card__amount{
    display:block;
    margin-top:5px;
    text-align:left;
    font-size:17px;
  }

  .modal-detail-workspace.is-prices-tab .modal-price-card__amount small{
    display:inline;
    margin:0 0 0 3px;
    font-size:8px;
  }

  .modal-detail-workspace.is-prices-tab .modal-price-card__subtitle,
  .modal-detail-workspace.is-prices-tab .modal-price-card__row,
  .modal-detail-workspace.is-prices-tab .modal-price-card__minimum,
  .modal-detail-workspace.is-prices-tab .modal-price-card__saving,
  .modal-detail-workspace.is-prices-tab .modal-price-invitation p{
    font-size:8px;
    line-height:1.25;
  }

  .modal-detail-workspace.is-prices-tab .modal-price-card__row,
  .modal-detail-workspace.is-prices-tab .modal-price-card__minimum{
    display:block;
    padding-top:6px;
  }

  .modal-detail-workspace.is-prices-tab .modal-price-card__row strong,
  .modal-detail-workspace.is-prices-tab .modal-price-card__minimum strong{
    display:block;
    margin-top:2px;
    text-align:left;
  }

  .modal-detail-workspace.is-prices-tab .modal-price-card__saving{
    padding:5px 7px;
  }

  .modal-detail-workspace.is-prices-tab .modal-price-card__minimum{
    margin:0 -11px -11px;
    padding:7px 11px;
  }

  .modal-detail-workspace.is-prices-tab .modal-price-invitation__eyebrow{font-size:8px;}
  .modal-detail-workspace.is-prices-tab .modal-price-invitation strong{font-size:13px;line-height:1.2;}
  .modal-detail-workspace.is-prices-tab .modal-price-invitation__button{
    padding:7px 8px;
    font-size:9px;
  }
}



@media(max-width:768px){
  .modal-mobile-stock-anchor .modal-stock-card{
    display:grid;
    grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
    grid-template-areas:"kicker detail" "title detail";
    column-gap:12px;
    align-items:center;
  }
  .modal-mobile-stock-anchor .modal-stock-card-kicker{grid-area:kicker;}
  .modal-mobile-stock-anchor .modal-stock-card strong{grid-area:title;}
  .modal-mobile-stock-anchor .modal-stock-card p{
    grid-area:detail;
    margin:0;
    padding-left:12px;
    border-left:1px solid rgba(255,255,255,.14);
    font-size:10px;
    line-height:1.35;
  }
}
.qty-reset-pop{animation:qtyResetPop .38s ease;}
@keyframes qtyResetPop{0%{transform:scale(1)}45%{transform:scale(1.35)}100%{transform:scale(1)}}


@media (max-width:768px){
  #modal-flavors-list,
  #modal-surtidos-list{
    gap:8px;
    padding-right:10px;
    scroll-padding-inline:0 10px;
  }

  .modal-flavor-tag,
  .modal-surtido-tag{
    /* Tres opciones completas y parte visible de la cuarta. */
    flex:0 0 calc((100% - 20px) / 3.5);
    min-width:0;
    max-width:none;
  }

  .buy-summary-row{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(112px,.8fr);
    align-items:center;
    gap:12px;
  }

  .quantity-box{
    width:100%;
    justify-content:center;
    gap:8px;
  }

  #qty-value{
    width:54px;
    min-width:54px;
    height:31px;
    border-radius:9px;
    font-size:16px;
  }

  .subtotal-box{
    width:100%;
    display:flex;
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    gap:8px;
    margin:0;
    text-align:left;
    white-space:nowrap;
  }

  .subtotal-box > span{
    color:#aaa;
    font-size:11px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.06em;
  }

  #modal-subtotal{
    font-size:17px;
    text-align:right;
  }
}

@media (max-width:370px){
  .buy-summary-row{
    grid-template-columns:minmax(0,1fr) 108px;
    gap:8px;
  }

  .quantity-box{
    gap:5px;
  }

  #qty-value{
    width:46px;
    min-width:46px;
  }
}




@media (max-width:768px){
  .modal-producto{padding:10px;align-items:flex-start;}
  .modal-content{
    width:100%;
    max-height:calc(100dvh - 20px);
    border-radius:22px;
    overscroll-behavior:contain;
    scrollbar-width:thin;
  }

  .modal-image{padding:10px 14px 6px;}
  .modal-image-stage{min-height:154px;border-radius:18px;}
  .modal-image img{width:82%;height:86%;max-height:154px;}
  .modal-close{top:12px;right:12px;width:40px;height:40px;font-size:24px;}

  .modal-info-header{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-areas:"title category" "package package";
    align-items:center;
    column-gap:10px;
    padding:12px 16px 7px;
  }
  #modal-category{
    grid-area:category;
    justify-self:end;
    max-width:130px;
    padding:5px 9px;
    border:1px solid rgba(255,179,71,.35);
    border-radius:999px;
    background:rgba(255,179,71,.10);
    color:#ffc369;
    font-size:9px;
    line-height:1;
    letter-spacing:.08em;
    text-align:center;
    text-transform:uppercase;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .modal-info-header h2{
    grid-area:title;
    min-width:0;
    margin:0;
    color:#fff;
    font-size:25px;
    line-height:1.05;
    overflow-wrap:anywhere;
  }
  #modal-package{
    grid-area:package;
    margin:5px 0 0;
    font-size:11px;
    line-height:1.3;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }

  .modal-info-body{padding:0 14px 14px;overflow:visible;}
  .modal-detail-workspace{gap:8px;}
  .modal-tabs{margin:5px 0 6px;min-height:34px;}
  .modal-tab{padding:7px 4px;font-size:12px;}
  .modal-panels-wrap{min-height:46px;}

  #modal-flavors-list,
  #modal-surtidos-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
    padding:2px 0 3px;
    overflow:visible;
  }
  .modal-flavor-tag,
  .modal-surtido-tag{
    width:100%;
    min-width:0;
    min-height:38px;
    max-height:none;
    padding:7px 8px;
    border-radius:12px;
    font-size:11px;
    line-height:1.15;
    overflow-wrap:anywhere;
  }

  .modal-mobile-stock-anchor{padding:5px 14px 0;}
  .modal-mobile-stock-anchor .modal-stock-card{
    grid-template-columns:minmax(88px,.72fr) minmax(0,1.28fr);
    min-height:48px;
    padding:8px 10px;
    border-radius:13px;
    background:linear-gradient(135deg,rgba(255,179,71,.10),rgba(255,255,255,.035));
    border-color:rgba(255,179,71,.22);
  }
  .modal-mobile-stock-anchor .modal-stock-card-kicker{font-size:6.5px;}
  .modal-mobile-stock-anchor .modal-stock-card strong{font-size:12px;line-height:1.15;}
  .modal-mobile-stock-anchor .modal-stock-card p{
    font-size:9px;
    line-height:1.25;
    -webkit-line-clamp:3;
  }

  .modal-purchase-column{gap:6px;min-width:0;}
  .modal-buy{
    margin-top:0;
    padding:9px;
    border-radius:16px;
    gap:7px;
    min-width:0;
  }
  .purchase-selection-inline,.modal-buy-title{display:none!important;}
  .buy-type{gap:7px;margin:0;}
  .buy-type-btn{min-width:0;min-height:39px;padding:8px 6px;border-radius:12px;font-size:11px;overflow-wrap:anywhere;}
  .buy-summary-row{grid-template-columns:minmax(0,1fr) minmax(96px,.72fr);gap:8px;margin:0;}
  .quantity-box{gap:6px;margin:0;}
  .quantity-box button{width:32px;height:32px;border-radius:10px;font-size:18px;}
  #qty-value{width:48px;min-width:48px;height:32px;font-size:17px;}
  .subtotal-box{margin:0;text-align:right;}
  .subtotal-box span{display:block;font-size:9px;letter-spacing:.08em;text-transform:uppercase;}
  #modal-subtotal{display:block;margin-top:2px;font-size:16px;white-space:nowrap;}

  .modal-purchase-actions{display:grid;grid-template-columns:minmax(0,1fr);gap:7px;min-width:0;}
  .modal-button{min-width:0;min-height:42px;padding:10px 12px;border-radius:12px;font-size:13px;white-space:normal;overflow-wrap:anywhere;}
#cart-floating{transform:scale(.92);transform-origin:bottom right;}
}

@media (max-width:360px){
  .modal-info-header{grid-template-columns:minmax(0,1fr) auto;padding-inline:13px;}
  .modal-info-header h2{font-size:22px;}
  #modal-category{max-width:105px;font-size:8px;}
  .modal-info-body,.modal-mobile-stock-anchor{padding-left:12px;padding-right:12px;}
  .buy-summary-row{grid-template-columns:minmax(0,1fr) 90px;}
}

@media (min-width:769px){
  .modal-purchase-actions{min-width:0;}
  .modal-purchase-actions > *{max-width:100%;box-sizing:border-box;}
}




/* En escritorio el contenedor auxiliar no altera la cuadrícula original. */
.modal-mobile-hero{display:contents;}

@media (max-width:768px){
  /* Imagen y stock comparten una fila, sin superposición. */
  .modal-mobile-hero{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(108px,32%);
    gap:8px;
    align-items:stretch;
    padding:10px 14px 6px;
    background:linear-gradient(135deg,#ff512f,#dd2476);
  }

  .modal-mobile-hero .modal-image{
    min-width:0;
    min-height:154px;
    height:154px;
    padding:0;
    background:transparent;
  }

  .modal-mobile-hero .modal-image-stage{
    min-width:0;
    min-height:154px;
    height:154px;
    border-radius:18px;
    overflow:hidden;
  }

  .modal-mobile-hero .modal-image img{
    width:92%;
    height:90%;
    max-height:148px;
  }

  .modal-mobile-stock-anchor{
    min-width:0;
    padding:0;
    display:flex;
  }

  .modal-mobile-stock-anchor .modal-stock-card{
    width:100%;
    min-width:0;
    min-height:154px;
    margin:0;
    padding:12px 10px;
    border-radius:18px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;
    gap:5px;
    overflow:hidden;
    background:linear-gradient(160deg,rgba(18,18,18,.96),rgba(33,33,33,.92));
    border:1px solid rgba(255,255,255,.12);
    box-shadow:0 10px 24px rgba(0,0,0,.18);
  }

  .modal-mobile-stock-anchor .modal-stock-card::before{width:3px;}
  .modal-mobile-stock-anchor .modal-stock-card-kicker{
    font-size:7px;
    line-height:1.2;
    letter-spacing:.11em;
  }
  .modal-mobile-stock-anchor .modal-stock-card strong{
    width:100%;
    font-size:13px;
    line-height:1.2;
    overflow-wrap:anywhere;
  }
  .modal-mobile-stock-anchor .modal-stock-card p{
    width:100%;
    margin:0;
    font-size:9px;
    line-height:1.35;
    display:-webkit-box;
    -webkit-line-clamp:5;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }

  /* Sabores y surtidos vuelven a una sola fila deslizable. */
  #modal-flavors-list,
  #modal-surtidos-list{
    display:flex;
    flex-wrap:nowrap;
    gap:7px;
    padding:2px 1px 5px;
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x proximity;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  #modal-flavors-list::-webkit-scrollbar,
  #modal-surtidos-list::-webkit-scrollbar{display:none;}

  .modal-flavor-tag,
  .modal-surtido-tag{
    flex:0 0 auto;
    width:auto;
    min-width:92px;
    max-width:132px;
    min-height:38px;
    padding:7px 11px;
    scroll-snap-align:start;
    white-space:normal;
  }

  /* Las dos acciones principales comparten la misma fila. */
  .modal-purchase-actions{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:7px;
    align-items:stretch;
  }
  .modal-purchase-actions .modal-button{
    min-height:44px;
    height:100%;
    padding:9px 8px;
    font-size:12px;
    line-height:1.15;
  }
}

@media (max-width:380px){
  .modal-mobile-hero{
    grid-template-columns:minmax(0,1fr) 104px;
    gap:6px;
    padding-inline:10px;
  }
  .modal-mobile-hero .modal-image,
  .modal-mobile-hero .modal-image-stage,
  .modal-mobile-stock-anchor .modal-stock-card{
    min-height:146px;
    height:146px;
  }
  .modal-mobile-stock-anchor .modal-stock-card{padding:10px 8px;}
  .modal-mobile-stock-anchor .modal-stock-card strong{font-size:12px;}
  .modal-mobile-stock-anchor .modal-stock-card p{font-size:8.5px;}
  .modal-purchase-actions .modal-button{font-size:11px;padding-inline:6px;}
}



@media (max-width:768px){
  /* Stock a la izquierda y producto a la derecha, sin superposición. */
  .modal-mobile-hero{
    grid-template-columns:minmax(108px,31%) minmax(0,1fr);
    gap:9px;
  }

  .modal-mobile-stock-anchor{order:1;}
  .modal-mobile-hero .modal-image{order:2;}

  .modal-mobile-stock-anchor .modal-stock-card{
    position:relative;
    isolation:isolate;
    padding:13px 11px 12px;
    border-radius:20px;
    background:
      radial-gradient(circle at 88% 12%,rgba(255,189,89,.22),transparent 36%),
      linear-gradient(155deg,rgba(31,31,31,.98),rgba(14,14,14,.96));
    border:1px solid rgba(255,207,128,.24);
    box-shadow:0 12px 28px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.06);
  }

  .modal-mobile-stock-anchor .modal-stock-card::before{
    top:12px;
    bottom:12px;
    left:0;
    width:4px;
    border-radius:0 999px 999px 0;
    background:linear-gradient(180deg,#ffd27a,#ff9f1a);
  }

  .modal-mobile-stock-anchor .modal-stock-card::after{
    content:"";
    position:absolute;
    right:10px;
    top:10px;
    width:7px;
    height:7px;
    border-radius:50%;
    background:#ffbd59;
    box-shadow:0 0 0 5px rgba(255,189,89,.10),0 0 18px rgba(255,189,89,.35);
    z-index:-1;
  }

  .modal-mobile-stock-anchor .modal-stock-card.is-available::after,
  .modal-mobile-stock-anchor .modal-stock-card.is-buildable::after{
    background:#69dc91;
    box-shadow:0 0 0 5px rgba(105,220,145,.10),0 0 18px rgba(105,220,145,.35);
  }

  .modal-mobile-stock-anchor .modal-stock-card.is-soldout::after{
    background:#ff7474;
    box-shadow:0 0 0 5px rgba(255,116,116,.10),0 0 18px rgba(255,116,116,.35);
  }

  .modal-mobile-stock-anchor .modal-stock-card-kicker{
    color:#f8b84f;
    font-size:7px;
    font-weight:800;
  }

  /* Tamaño fijo de sabores y surtidos, independientemente del regalo. */
  .modal-panels-wrap,
  .modal-panel{
    min-width:0;
  }

  #modal-flavors-list,
  #modal-surtidos-list{
    min-height:45px;
    align-items:stretch;
  }

  .modal-flavor-tag,
  .modal-surtido-tag{
    box-sizing:border-box;
    flex:0 0 104px;
    width:104px;
    min-width:104px;
    max-width:104px;
    height:40px;
    min-height:40px;
    max-height:40px;
    padding:7px 10px;
    display:flex;
    align-items:center;
    justify-content:center;
    line-height:1.15;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  /* Una o dos acciones sin alterar la altura total del bloque. */
  .modal-purchase-actions{
    grid-template-columns:minmax(0,1fr);
    grid-template-rows:44px 16px;
    gap:6px 7px;
    min-height:66px;
  }

  .modal-purchase-actions.has-gift-action{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  }

  .modal-purchase-actions .modal-button{
    grid-row:1;
    min-height:44px;
    height:44px;
  }

  .modal-purchase-actions:not(.has-gift-action) #add-cart-button{
    grid-column:1 / -1;
  }

}

@media (max-width:380px){
  .modal-mobile-hero{
    grid-template-columns:104px minmax(0,1fr);
  }

  .modal-flavor-tag,
  .modal-surtido-tag{
    flex-basis:98px;
    width:98px;
    min-width:98px;
    max-width:98px;
  }
}



.buy-type-btn.is-disabled-for-assortment,
.buy-type-btn:disabled{
  cursor:not-allowed;
  opacity:.48;
  color:#9a9a9a;
  background:linear-gradient(180deg,#292929,#202020);
  border-color:rgba(255,255,255,.07);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025);
  transform:none!important;
}
.buy-type-btn.is-disabled-for-assortment::after{
  content:"Solo en caja";
  display:block;
  margin-top:2px;
  font-size:7px;
  font-weight:700;
  letter-spacing:.04em;
  color:#777;
}
@media (max-width:768px){
  #modal-flavors-list:not(.is-short-list) .modal-flavor-tag,
  #modal-surtidos-list:not(.is-short-list) .modal-surtido-tag{
    flex:0 0 26.5%;
    width:26.5%;
    min-width:0;
    max-width:none;
  }
  #modal-flavors-list.is-short-list .modal-flavor-tag,
  #modal-surtidos-list.is-short-list .modal-surtido-tag{
    flex:0 0 auto;
    width:auto;
    min-width:92px;
    max-width:118px;
    padding-inline:12px;
  }
  .buy-type-btn.is-disabled-for-assortment::after{font-size:6.5px;}
}
@media (max-width:360px){
  #modal-flavors-list:not(.is-short-list) .modal-flavor-tag,
  #modal-surtidos-list:not(.is-short-list) .modal-surtido-tag{
    flex-basis:26%;
    width:26%;
    font-size:10px;
    padding-inline:6px;
  }
}


.buy-type-btn.is-stock-unavailable{
  position:relative;
  cursor:not-allowed;
  opacity:.48;
  color:#929292;
  background:linear-gradient(180deg,#292929,#202020);
  border-color:rgba(255,255,255,.07);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025);
  transform:none!important;
}
.buy-type-btn.is-stock-unavailable::after{
  content:attr(data-disabled-reason);
  display:block;
  margin-top:2px;
  font-size:7px;
  font-weight:800;
  letter-spacing:.04em;
  color:#ff8a8a;
}
.modal-price-card[data-buy-type].is-unavailable{
  opacity:.42;
  filter:saturate(.35);
  cursor:not-allowed;
  pointer-events:none;
}




.modal-stock-card.is-programmed{
  border-color:rgba(91,171,255,.42);
  background:
    radial-gradient(circle at 88% 14%,rgba(103,188,255,.22),transparent 34%),
    linear-gradient(145deg,rgba(43,111,184,.22),rgba(19,23,30,.98) 66%);
  box-shadow:0 16px 38px rgba(0,79,153,.18),inset 0 1px 0 rgba(255,255,255,.05);
}

.modal-stock-card.is-programmed::before{
  width:132px;
  height:132px;
  right:-48px;
  top:-58px;
  background:rgba(95,183,255,.18);
}

.modal-stock-card.is-programmed .modal-stock-card-kicker{
  color:#9bd3ff;
}

.modal-stock-card.is-programmed strong{
  color:#d9efff;
}

.modal-stock-card.is-programmed p{
  color:#bdd0df;
}

.modal-flavor-tag.is-programmable,
.modal-surtido-tag.is-programmable{
  border-color:rgba(91,171,255,.2);
}

.modal-flavor-tag.is-programmable:not(.selected):hover,
.modal-surtido-tag.is-programmable:not(.selected):hover{
  border-color:rgba(91,171,255,.5);
  background:rgba(91,171,255,.08);
}

@media (max-width:768px){
  .modal-mobile-stock-anchor .modal-stock-card.is-programmed{
    border-color:rgba(91,171,255,.45);
    background:
      radial-gradient(circle at 84% 18%,rgba(103,188,255,.2),transparent 38%),
      linear-gradient(145deg,rgba(43,111,184,.25),rgba(17,21,27,.98) 70%);
  }
}



.modal-stock-card.is-programmed p:empty{
  display:none;
}

@media (max-width:768px){
  .modal-mobile-stock-anchor .modal-stock-card.is-programmed{
    min-height:74px;
    padding:11px 12px 10px 15px;
    border-radius:16px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:4px;
    overflow:hidden;
    box-shadow:0 10px 26px rgba(0,79,153,.2),inset 0 1px 0 rgba(255,255,255,.06);
  }

  .modal-mobile-stock-anchor .modal-stock-card.is-programmed::before{
    width:88px;
    height:88px;
    right:-34px;
    top:-38px;
  }

  .modal-mobile-stock-anchor .modal-stock-card.is-programmed .modal-stock-card-kicker{
    font-size:8px;
    line-height:1;
    letter-spacing:1.35px;
    white-space:nowrap;
  }

  .modal-mobile-stock-anchor .modal-stock-card.is-programmed strong{
    font-size:14px;
    line-height:1.15;
    max-width:calc(100% - 18px);
  }
}





.cart-floating{
  position:fixed;
  right:25px;
  bottom:25px;
  background:#ffb347;
  color:#111;
  padding:16px 22px;
  border-radius:999px;
  font-weight:bold;
  cursor:pointer;
  z-index:2500;
  box-shadow:0 15px 40px rgba(0,0,0,0.35);
}

#cart-count{
  background:#111;
  color:white;
  padding:4px 9px;
  border-radius:999px;
  margin-left:8px;
}

.cart-panel{
  position:fixed;
  top:0;
  right:-420px;
  width:380px;
  height:100vh;
  background:#151515;
  color:white;
  z-index:3200;
  padding:25px;
  transition:0.4s ease;
  overflow-y:auto;
}

.cart-panel.active{
  right:0;
}

.cart-header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:25px;
}

.cart-header button{
  width:38px;
  height:38px;
  border:none;
  border-radius:50%;
  font-size:24px;
  cursor:pointer;
}

.cart-item{
  background:#222;
  padding:18px;
  border-radius:16px;
  margin-bottom:15px;
  display:flex;
  gap:14px;
  align-items:flex-start;
}

.cart-item-img{
  width:58px;
  height:58px;
  object-fit:contain;
  background:#2a2a2a;
  border-radius:14px;
  padding:8px;
  flex:none;
}

.cart-item-info{
  flex:1;
}

.cart-item-badge{
  display:inline-block;
  margin-top:8px;
  padding:5px 10px;
  border-radius:999px;
  background:#333;
  color:#ffb347;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:1px;
}

.cart-item h3{
  margin-bottom:8px;
}

.cart-item p{
  color:#ccc;
  font-size:14px;
  margin-bottom:6px;
}

.cart-total{
  margin-top:25px;
  padding-top:20px;
  border-top:1px solid rgba(255,255,255,0.1);
  font-size:20px;
  font-weight:bold;
}

#cart-total{
  color:#ffb347;
}

.cart-controls{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:12px;
}

.cart-controls button{
  width:28px;
  height:28px;
  border:none;
  border-radius:8px;
  background:#ffb347;
  color:#111;
  font-weight:bold;
  cursor:pointer;
}

.cart-controls span{
  min-width:24px;
  text-align:center;
  font-weight:bold;
}

.cart-title{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
}

.cart-title h3{
  margin:0;
}

.cart-remove{
  background:none;
  border:none;
  cursor:pointer;
  font-size:18px;
  opacity:0.7;
  transition:0.3s ease;
}

.cart-remove:hover{
  opacity:1;
  transform:scale(1.1);
}

.cart-category{
  color:#ffb347;
  font-size:14px;
  letter-spacing:2px;
  text-transform:uppercase;
  margin:25px 0 12px;
}

.cart-checkout{
  width:100%;
  margin-top:25px;
  padding:16px;
  border:none;
  border-radius:16px;
  background:#ffb347;
  color:#111;
  font-weight:bold;
  cursor:pointer;
  transition:0.3s ease;
}

.cart-checkout:hover{
  background:#ffd27a;
  transform:translateY(-3px);
}

.cart-mode-label{
  color:#ffb347;
  font-size:14px;
  margin-bottom:18px;
}


/* Móvil */
@media(max-width:768px){

  .cart-panel{
    width:100%;
    right:-100%;
  }

  .cart-floating{
    right:15px;
    bottom:15px;
  }

}


.cart-panel{
  right:min(-560px,-100vw);
  width:min(520px,94vw);
  height:100dvh;
  padding:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  background:
    radial-gradient(circle at 100% 0,rgba(255,179,71,.12),transparent 32%),
    linear-gradient(180deg,#191919 0%,#111 100%);
  border-left:1px solid rgba(255,255,255,.1);
  box-shadow:-24px 0 70px rgba(0,0,0,.52);
}

.cart-panel.active{right:0}

.cart-header{
  position:relative;
  flex:none;
  margin:0;
  padding:22px 22px 14px;
  background:rgba(18,18,18,.92);
  border-bottom:1px solid rgba(255,255,255,.08);
  backdrop-filter:blur(18px);
}

.cart-header h2{margin:0;font-size:clamp(22px,2vw,29px)}

.cart-header button{
  display:grid;
  place-items:center;
  background:#292929;
  color:#fff;
  border:1px solid rgba(255,255,255,.12);
  transition:transform .2s ease,background .2s ease;
}
.cart-header button:hover{background:#383838;transform:rotate(4deg) scale(1.04)}

.cart-mode-label{
  flex:none;
  margin:0;
  padding:12px 22px;
  color:#ffc46f;
  background:rgba(255,179,71,.06);
  border-bottom:1px solid rgba(255,255,255,.06);
  font-size:13px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

#cart-items{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  padding:8px 16px 18px;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,179,71,.5) transparent;
}
#cart-items::-webkit-scrollbar{width:7px}
#cart-items::-webkit-scrollbar-thumb{background:rgba(255,179,71,.45);border-radius:99px}

.cart-category{
  position:sticky;
  top:0;
  z-index:2;
  margin:10px 0 8px;
  padding:9px 4px 7px;
  background:linear-gradient(180deg,rgba(21,21,21,.98) 70%,rgba(21,21,21,0));
  font-size:12px;
}

.cart-item{
  position:relative;
  min-height:92px;
  margin-bottom:10px;
  padding:12px;
  gap:12px;
  border:1px solid rgba(255,255,255,.075);
  border-radius:18px;
  background:linear-gradient(145deg,rgba(42,42,42,.94),rgba(30,30,30,.96));
  box-shadow:0 8px 22px rgba(0,0,0,.18);
  transition:transform .2s ease,border-color .2s ease;
}
.cart-item:hover{transform:translateY(-1px);border-color:rgba(255,179,71,.28)}

.cart-item-img{
  width:66px;
  height:66px;
  padding:7px;
  border-radius:15px;
  background:linear-gradient(145deg,#333,#242424);
}

.cart-item-info{min-width:0}
.cart-title{align-items:flex-start}
.cart-title h3{
  overflow:hidden;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  font-size:15px;
  line-height:1.3;
}
.cart-item p{margin:4px 0 0;font-size:12px;line-height:1.35}
.cart-item-badge{margin-top:6px;padding:3px 8px;font-size:9px}
.cart-item-info>strong{display:inline-block;margin-top:7px;color:#ffc15e;font-size:15px}

.cart-controls{
  position:absolute;
  right:12px;
  bottom:11px;
  gap:6px;
  margin:0;
  padding:3px;
  border-radius:11px;
  background:rgba(0,0,0,.28);
}
.cart-controls button{width:27px;height:27px;border-radius:8px}
.cart-controls span{min-width:22px;font-size:13px}
.cart-remove{flex:none;width:30px;height:30px;border-radius:10px;background:rgba(255,92,92,.08)}

.cart-total{
  flex:none;
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin:0;
  padding:16px 22px 7px;
  border-top:1px solid rgba(255,255,255,.09);
  background:#151515;
}

.cart-checkout{
  flex:none;
  width:calc(100% - 32px);
  margin:8px 16px 16px;
  padding:15px;
  border-radius:14px;
  box-shadow:0 12px 28px rgba(255,179,71,.18);
}

@media(max-width:768px){
  .cart-panel{width:100%;right:-100%;border-left:0}
  .cart-header{padding:17px 16px 11px}
  .cart-mode-label{padding:10px 16px;font-size:11px}
  #cart-items{padding:6px 10px 14px}
  .cart-item{min-height:82px;padding:10px;border-radius:15px}
  .cart-item-img{width:54px;height:54px;border-radius:12px}
  .cart-title h3{font-size:13px}
  .cart-item p{font-size:11px;max-width:190px}
  .cart-item-info>strong{font-size:14px;margin-top:5px}
  .cart-controls{right:9px;bottom:8px}
  .cart-total{padding:13px 16px 5px;font-size:17px}
  .cart-checkout{width:calc(100% - 20px);margin:7px 10px 10px;padding:14px}
}

.product-fly-clone{position:fixed;z-index:5000;object-fit:contain;pointer-events:none;border-radius:18px;filter:drop-shadow(0 18px 24px rgba(0,0,0,.42));transition:transform .62s cubic-bezier(.2,.78,.2,1),opacity .56s ease;will-change:transform,opacity}
.cart-floating.cart-feedback-bounce{animation:cartFeedbackBounce .62s ease}
#cart-count.cart-count-bounce{animation:cartCountBounce .62s ease}
@keyframes cartFeedbackBounce{0%,100%{transform:scale(1)}38%{transform:scale(1.12) rotate(-2deg)}68%{transform:scale(.97)}}
@keyframes cartCountBounce{0%,100%{transform:scale(1)}45%{transform:scale(1.4)}}
@media(prefers-reduced-motion:reduce){.product-fly-clone{display:none}.cart-floating.cart-feedback-bounce,#cart-count.cart-count-bounce{animation:none}}



.modal-producto.active ~ .cart-floating,
body:has(.modal-producto.active) .cart-floating{
  z-index:4100;
}


.cart-floating.is-panel-open,
.cart-floating.is-prices-hidden{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(10px) scale(.94);
}

.cart-floating{
  transition:opacity .2s ease,visibility .2s ease,transform .2s ease,box-shadow .2s ease;
}

@media(max-width:768px){
  .cart-floating{
    width:54px;
    height:54px;
    min-width:54px;
    padding:0;
    display:grid;
    place-items:center;
    font-size:0;
    border:1px solid rgba(255,255,255,.2);
    box-shadow:0 14px 34px rgba(0,0,0,.4),inset 0 1px 0 rgba(255,255,255,.35);
  }

  .cart-floating::before{
    content:"🛒";
    font-size:22px;
    line-height:1;
  }

  #cart-count{
    position:absolute;
    top:-5px;
    right:-5px;
    min-width:22px;
    height:22px;
    padding:0 6px;
    margin:0;
    display:grid;
    place-items:center;
    border:2px solid #ffb347;
    font-size:11px;
  }
}



.cart-confirm-overlay{position:fixed;inset:0;z-index:10050;display:grid;place-items:center;padding:20px;background:rgba(0,0,0,.72);backdrop-filter:blur(5px)}
.cart-confirm-dialog{width:min(390px,100%);padding:24px;border:1px solid rgba(255,184,64,.28);border-radius:24px;background:#171717;color:#fff;box-shadow:0 24px 80px rgba(0,0,0,.5);text-align:center}
.cart-confirm-icon{display:grid;place-items:center;width:54px;height:54px;margin:0 auto 12px;border-radius:18px;background:linear-gradient(135deg,#ffbd4a,#eb941d);font-size:25px}
.cart-confirm-dialog h3{margin:0 0 8px;font-size:21px}.cart-confirm-dialog p{margin:0;color:#cfcfcf;line-height:1.45}.cart-confirm-dialog p strong{color:#fff}
.cart-confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}.cart-confirm-actions button{min-height:44px;border:0;border-radius:14px;background:#303030;color:#fff;font-weight:700;cursor:pointer}.cart-confirm-actions button.danger{background:linear-gradient(135deg,#ffb63e,#ec8c18);color:#17110a}
@media(max-width:480px){.cart-confirm-dialog{padding:20px}.cart-confirm-actions{grid-template-columns:1fr}}


.cart-modal{
  position:fixed;
  inset:0;
  z-index:30000;
  display:block;
  visibility:hidden;
  pointer-events:none;
  overflow:hidden;
}
.cart-modal.active{visibility:visible;pointer-events:auto}
.cart-modal-overlay{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.72);
  opacity:0;
  backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);
  transition:opacity .24s ease;
}
.cart-modal.active .cart-modal-overlay{opacity:1}
.cart-modal .cart-panel{
  top:0;
  right:0;
  height:100dvh;
  max-height:100dvh;
  transform:translateX(104%);
  transition:transform .3s cubic-bezier(.22,.78,.24,1);
  z-index:1;
  box-sizing:border-box;
}
.cart-modal.active .cart-panel,
.cart-modal .cart-panel.active{right:0;transform:translateX(0)}
body.cart-modal-open{overflow:hidden!important}
body.cart-modal-open .catalogo-public-header,
body.cart-modal-open .global-admin-menu-trigger,
body.cart-modal-open .catalogo-mobile-nav{pointer-events:none}
.product-fly-clone{z-index:18000!important}
@media(max-width:768px){
  .cart-modal .cart-panel{width:100%;max-width:100%;border-left:0}
}


.cart-item-consult{
  border-color:rgba(255,185,70,.34);
  background:linear-gradient(145deg,rgba(58,45,25,.92),rgba(31,29,25,.97));
}
.cart-item-consult .cart-item-badge{
  color:#ffd08a;
  background:rgba(255,179,71,.13);
  border:1px solid rgba(255,179,71,.25);
}
#cart-items{padding:5px 12px 12px}
.cart-category{margin:6px 0 4px;padding:6px 3px 5px;font-size:10px}
.cart-item{
  min-height:68px;
  margin-bottom:6px;
  padding:8px 9px;
  gap:9px;
  border-radius:13px;
}
.cart-item-img{width:48px;height:48px;padding:4px;border-radius:10px}
.cart-title{gap:7px}
.cart-title h3{-webkit-line-clamp:1;font-size:12px;line-height:1.22;padding-right:2px}
.cart-item p{margin:2px 0 0;font-size:10px;line-height:1.2;max-width:none}
.cart-item-badge{margin-top:4px;padding:2px 6px;font-size:8px;letter-spacing:.07em}
.cart-item-info>strong{margin-top:4px;font-size:13px}
.cart-remove{width:24px;height:24px;font-size:14px;border-radius:7px}
.cart-controls{right:8px;bottom:7px;gap:3px;padding:2px;border-radius:8px}
.cart-controls button{width:22px;height:22px;border-radius:6px;font-size:12px}
.cart-controls span{min-width:18px;font-size:11px}
.cart-header{padding:14px 17px 9px}
.cart-header h2{font-size:21px}
.cart-mode-label{padding:7px 17px;font-size:10px}
.cart-total{padding:10px 17px 4px;font-size:16px}
.cart-checkout{margin:5px 12px 10px;width:calc(100% - 24px);padding:12px}

@media(max-width:768px){
  #cart-items{padding:4px 8px 10px}
  .cart-header{padding:12px 13px 8px}
  .cart-header h2{font-size:19px}
  .cart-mode-label{padding:6px 13px;font-size:9px}
  .cart-item{min-height:62px;padding:7px 8px;gap:8px;margin-bottom:5px}
  .cart-item-img{width:43px;height:43px}
  .cart-title h3{font-size:11px}
  .cart-item p{font-size:9px}
  .cart-item-info>strong{font-size:12px;margin-top:3px}
  .cart-item-badge{margin-top:3px;font-size:7px}
  .cart-controls{right:7px;bottom:6px}
  .cart-controls button{width:20px;height:20px}
  .cart-total{padding:9px 13px 4px;font-size:15px}
  .cart-checkout{margin:4px 8px 8px;width:calc(100% - 16px);padding:11px}
}


.cart-header{
  min-height:58px;
  margin:0;
  padding:11px 16px 9px;
  border-bottom:1px solid rgba(255,255,255,.075);
  background:linear-gradient(180deg,rgba(24,24,24,.98),rgba(20,20,20,.98));
}
.cart-header h2{margin:0;font-size:20px;letter-spacing:-.02em}
.cart-header button{width:34px;height:34px;font-size:20px;background:#282828;color:#fff;border:1px solid rgba(255,255,255,.1)}
.cart-mode-label{
  padding:6px 16px;
  border-bottom:1px solid rgba(255,255,255,.055);
  background:rgba(255,179,71,.045);
  font-size:9px;
}
#cart-items{padding:4px 11px 10px}
.cart-category{
  display:flex;
  align-items:center;
  gap:8px;
  margin:4px 0 3px;
  padding:5px 2px 4px;
  color:#ffbf61;
  background:linear-gradient(180deg,rgba(21,21,21,.99) 72%,rgba(21,21,21,0));
  font-size:9px;
  letter-spacing:.11em;
}
.cart-category::after{content:"";height:1px;flex:1;background:linear-gradient(90deg,rgba(255,179,71,.32),transparent)}
.cart-item{
  display:grid;
  grid-template-columns:44px minmax(0,1fr);
  align-items:center;
  min-height:58px;
  margin-bottom:4px;
  padding:6px 7px;
  gap:8px;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.07);
  background:linear-gradient(145deg,rgba(40,40,40,.95),rgba(28,28,28,.98));
  box-shadow:0 5px 14px rgba(0,0,0,.14);
  animation:cartItemIn .22s ease both;
}
.cart-item:hover{transform:none;border-color:rgba(255,179,71,.2);background:linear-gradient(145deg,rgba(43,43,43,.97),rgba(30,30,30,.99))}
.cart-item-consult{border-left:3px solid #ffb347;padding-left:5px;background:linear-gradient(145deg,rgba(54,44,28,.94),rgba(31,29,25,.98))}
.cart-item-img{width:42px;height:42px;padding:4px;border-radius:10px;background:rgba(255,255,255,.045)}
.cart-item-info{display:grid;grid-template-rows:auto auto auto;gap:2px;min-width:0}
.cart-title{display:block;min-width:0}
.cart-title h3{
  margin:0;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  display:block;
  font-size:11.5px;
  line-height:1.18;
  font-weight:800;
  color:#fff;
}
.cart-item-meta{display:flex;align-items:center;gap:5px;min-width:0;line-height:1}
.cart-item-pack{
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  color:#bdbdbd;
  font-size:8.5px;
}
.cart-item-pack::before{content:""}
.cart-item-badge{
  flex:none;
  margin:0;
  padding:2px 5px;
  border:1px solid rgba(130,219,151,.16);
  border-radius:999px;
  background:rgba(76,175,80,.08);
  color:#a8ddb2;
  font-size:6.8px;
  font-weight:800;
  line-height:1.15;
  letter-spacing:.055em;
  text-transform:uppercase;
}
.cart-item-consult .cart-item-badge{color:#ffd18d;background:rgba(255,179,71,.12);border-color:rgba(255,179,71,.2)}
.cart-item-bottom{display:flex;align-items:center;justify-content:space-between;gap:7px;min-width:0}
.cart-item-price{margin:0!important;color:#ffc15e!important;font-size:12px!important;line-height:1.05;white-space:nowrap}
.cart-item-actions{display:flex;align-items:center;gap:4px;margin-left:auto}
.cart-remove{
  position:static;
  display:grid;
  place-items:center;
  flex:none;
  width:22px;
  height:22px;
  padding:0;
  border:1px solid rgba(255,105,105,.12);
  border-radius:7px;
  background:rgba(255,92,92,.065);
  color:#d8a0a0;
  font-size:11px;
  line-height:1;
}
.cart-remove:hover{background:rgba(255,92,92,.14);color:#fff}
.cart-controls{
  position:static;
  display:flex;
  align-items:center;
  gap:1px;
  margin:0;
  padding:2px;
  border:1px solid rgba(255,255,255,.06);
  border-radius:8px;
  background:rgba(0,0,0,.25);
}
.cart-controls button{width:21px;height:21px;border-radius:6px;font-size:12px;line-height:1}
.cart-controls span{min-width:18px;font-size:10px;line-height:1}
.cart-total{
  min-height:40px;
  margin:0;
  padding:8px 15px 3px;
  border-top:1px solid rgba(255,255,255,.08);
  background:linear-gradient(180deg,#171717,#141414);
  font-size:15px;
}
.cart-checkout{
  min-height:42px;
  width:calc(100% - 20px);
  margin:4px 10px 9px;
  padding:10px 14px;
  border-radius:12px;
  font-size:14px;
  box-shadow:0 9px 22px rgba(255,179,71,.14);
}
@keyframes cartItemIn{from{opacity:0;transform:translateX(7px)}to{opacity:1;transform:translateX(0)}}

@media(max-width:768px){
  .cart-header{min-height:54px;padding:9px 12px 7px}
  .cart-header h2{font-size:18px}
  .cart-header button{width:32px;height:32px;font-size:19px}
  .cart-mode-label{padding:5px 12px;font-size:8px}
  #cart-items{padding:3px 7px 8px}
  .cart-category{margin:3px 0 2px;padding:4px 2px 3px;font-size:8px}
  .cart-item{grid-template-columns:39px minmax(0,1fr);min-height:52px;margin-bottom:3px;padding:5px 6px;gap:7px;border-radius:10px}
  .cart-item-consult{padding-left:4px}
  .cart-item-img{width:37px;height:37px;padding:3px;border-radius:9px}
  .cart-title h3{font-size:10.5px}
  .cart-item-pack{font-size:7.8px}
  .cart-item-badge{padding:1.5px 4px;font-size:6.2px}
  .cart-item-price{font-size:11px!important}
  .cart-remove{width:20px;height:20px;font-size:10px}
  .cart-controls button{width:19px;height:19px;font-size:11px}
  .cart-controls span{min-width:16px;font-size:9px}
  .cart-total{min-height:36px;padding:7px 11px 2px;font-size:14px}
  .cart-checkout{min-height:40px;margin:3px 7px 7px;width:calc(100% - 14px);padding:9px;font-size:13px}
}

@media(prefers-reduced-motion:reduce){.cart-item{animation:none}}


.cart-item{
  grid-template-columns:40px minmax(0,1fr);
  min-height:52px;
  margin-bottom:3px;
  padding:5px 6px;
  gap:7px;
}
.cart-item-consult{padding-left:4px}
.cart-item-img{width:38px;height:38px;padding:3px}
.cart-item-info{grid-template-rows:auto auto auto;gap:0}
.cart-title h3{font-size:11px;line-height:1.08}
.cart-item-meta{gap:4px;margin-top:1px;line-height:1}
.cart-item-pack{font-size:8px;line-height:1}
.cart-item-badge{padding:1px 4px;font-size:6.2px;line-height:1.05}
.cart-item-bottom{margin-top:1px;gap:5px;line-height:1}
.cart-item-price{font-size:11.5px!important;line-height:1!important}
.cart-item-actions{gap:3px}
.cart-controls{height:25px;padding:1px;gap:0;border-radius:7px}
.cart-controls button{width:22px;height:22px;min-height:0;padding:0;border-radius:5px;font-size:12px;line-height:1}
.cart-controls span{min-width:18px;font-size:9.5px;line-height:1}
.cart-remove{width:25px;height:25px;min-height:0;padding:0;border-radius:7px;font-size:10px}

@media(max-width:768px){
  .cart-item{grid-template-columns:36px minmax(0,1fr);min-height:47px;padding:4px 5px;gap:6px;margin-bottom:3px}
  .cart-item-consult{padding-left:3px}
  .cart-item-img{width:34px;height:34px;padding:3px}
  .cart-title h3{font-size:10px;line-height:1.05}
  .cart-item-meta{margin-top:0;gap:3px}
  .cart-item-pack{font-size:7.3px}
  .cart-item-badge{padding:1px 3px;font-size:5.8px}
  .cart-item-bottom{margin-top:0}
  .cart-item-price{font-size:10.5px!important}
  .cart-controls{height:23px}
  .cart-controls button{width:20px;height:20px;font-size:11px}
  .cart-controls span{min-width:16px;font-size:9px}
  .cart-remove{width:23px;height:23px;font-size:9px}
}

.cart-controls{
  height:29px;
  border-radius:8px;
}
.cart-controls button{
  width:26px;
  height:26px;
  border-radius:6px;
  font-size:14px;
}
.cart-controls span{
  min-width:21px;
  font-size:10.5px;
  font-weight:700;
}
.cart-remove{
  width:29px;
  height:29px;
  border-radius:8px;
  font-size:11px;
}
.cart-item-actions{gap:4px}

/* El boton conserva solo texto, sin iconos decorativos. */
.cart-checkout::before,
.cart-checkout::after{content:none!important;display:none!important}

@media(max-width:768px){
  .cart-controls{height:27px}
  .cart-controls button{width:24px;height:24px;font-size:13px}
  .cart-controls span{min-width:19px;font-size:10px}
  .cart-remove{width:27px;height:27px;font-size:10px}
}

.cart-item-actions{
  gap:6px;
}
.cart-controls{
  height:34px;
  padding:2px;
  gap:1px;
  border-radius:10px;
}
.cart-controls button{
  width:30px;
  height:30px;
  min-width:30px;
  min-height:30px;
  padding:0;
  border-radius:8px;
  font-size:17px;
  line-height:1;
}
.cart-controls span{
  min-width:25px;
  font-size:13px;
  font-weight:800;
  line-height:1;
}
.cart-remove{
  width:34px;
  height:34px;
  min-width:34px;
  min-height:34px;
  padding:0;
  border-radius:10px;
  font-size:14px;
  line-height:1;
}
.cart-remove span{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  line-height:1;
}

@media(max-width:768px){
  .cart-item-actions{gap:5px}
  .cart-controls{height:32px}
  .cart-controls button{
    width:28px;
    height:28px;
    min-width:28px;
    min-height:28px;
    font-size:16px;
  }
  .cart-controls span{min-width:23px;font-size:12px}
  .cart-remove{
    width:32px;
    height:32px;
    min-width:32px;
    min-height:32px;
    font-size:13px;
  }
}

.cart-item{
  grid-template-columns:52px minmax(0,1fr);
  min-height:76px;
  padding:9px 10px;
  gap:10px;
  margin-bottom:6px;
  border-radius:13px;
}
.cart-item-consult{padding-left:8px}
.cart-item-img{
  width:50px;
  height:50px;
  padding:5px;
  border-radius:11px;
}
.cart-item-info{
  gap:2px;
}
.cart-title h3{
  font-size:15px;
  line-height:1.15;
  font-weight:800;
}
.cart-item-meta{
  gap:6px;
  margin-top:1px;
  line-height:1.15;
}
.cart-item-pack{
  font-size:11.5px;
  line-height:1.15;
  color:#d0d0d0;
}
.cart-item-badge{
  padding:3px 7px;
  font-size:9px;
  line-height:1.1;
  letter-spacing:.045em;
}
.cart-item-bottom{
  margin-top:2px;
  gap:8px;
  line-height:1.1;
}
.cart-item-price{
  font-size:16px!important;
  line-height:1.1!important;
  font-weight:800;
}

@media(max-width:768px){
  .cart-item{
    grid-template-columns:46px minmax(0,1fr);
    min-height:68px;
    padding:7px 8px;
    gap:8px;
    margin-bottom:5px;
    border-radius:12px;
  }
  .cart-item-consult{padding-left:6px}
  .cart-item-img{
    width:44px;
    height:44px;
    padding:4px;
    border-radius:10px;
  }
  .cart-title h3{
    font-size:13.5px;
    line-height:1.12;
  }
  .cart-item-meta{
    gap:5px;
    margin-top:1px;
  }
  .cart-item-pack{
    font-size:10.5px;
  }
  .cart-item-badge{
    padding:2.5px 6px;
    font-size:8px;
  }
  .cart-item-bottom{margin-top:2px}
  .cart-item-price{
    font-size:15px!important;
  }
}



.checkout-modal{
  position:fixed;
  inset:0;
  z-index:4000;
  display:none;
  place-items:center;
  padding:24px;
  background:rgba(0,0,0,.78);
  backdrop-filter:blur(7px);
}
.checkout-modal.active{display:grid}
body.checkout-open{overflow:hidden}
.checkout-content{
  position:relative;
  width:min(100%,600px);
  max-height:calc(100vh - 48px);
  overflow:auto;
  padding:30px;
  border:1px solid rgba(255,179,71,.18);
  border-radius:26px;
  background:linear-gradient(180deg,#181818 0%,#111 100%);
  color:#fff;
  box-shadow:0 28px 80px rgba(0,0,0,.56);
  scrollbar-width:thin;
  scrollbar-color:#5a4528 transparent;
}
.checkout-content::-webkit-scrollbar{width:8px}
.checkout-content::-webkit-scrollbar-thumb{background:#5a4528;border-radius:999px}
.checkout-close{
  position:absolute;
  top:16px;
  right:16px;
  z-index:2;
  display:grid;
  place-items:center;
  width:40px;
  height:40px;
  padding:0;
  border:1px solid rgba(255,255,255,.08);
  border-radius:50%;
  background:#f7f7f7;
  color:#111;
  font-size:26px;
  line-height:1;
  cursor:pointer;
  transition:transform .18s ease,background .18s ease;
}
.checkout-close:hover{transform:rotate(5deg) scale(1.05);background:#fff}
.checkout-header{text-align:center;padding:0 52px 20px}
.checkout-eyebrow{
  display:inline-block;
  margin-bottom:7px;
  color:#ffb347;
  font-size:12px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.checkout-header h2{margin:0 0 8px;font-size:30px;line-height:1.1}
.checkout-header p{margin:0;color:#bdbdbd;font-size:14px;line-height:1.55}
.checkout-client-box{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:6px;
  margin:0 0 16px;
  padding:11px 14px;
  border:1px solid rgba(255,179,71,.18);
  border-radius:14px;
  background:rgba(255,179,71,.1);
  color:#d9d9d9;
  font-size:14px;
}
.checkout-client-box strong{color:#ffb347}
.checkout-alert{
  margin:0 0 16px;
  padding:12px 14px;
  border:1px solid rgba(248,113,113,.42);
  border-radius:13px;
  background:rgba(127,29,29,.26);
  color:#fecaca;
  font-size:14px;
  line-height:1.45;
}
.checkout-alert.success{border-color:rgba(74,222,128,.38);background:rgba(20,83,45,.25);color:#bbf7d0}
#checkout-form{display:flex;flex-direction:column;gap:16px}
.checkout-section{
  padding:18px;
  border:1px solid rgba(255,255,255,.075);
  border-radius:20px;
  background:rgba(255,255,255,.025);
}
.checkout-section-heading{display:flex;align-items:flex-start;gap:12px;margin-bottom:15px}
.checkout-step{
  flex:0 0 auto;
  display:grid;
  place-items:center;
  width:30px;
  height:30px;
  border-radius:10px;
  background:#ffb347;
  color:#18120a;
  font-size:14px;
  font-weight:900;
}
.checkout-section-heading h3{margin:1px 0 3px;color:#fff;font-size:17px}
.checkout-section-heading p{margin:0;color:#949494;font-size:12.5px;line-height:1.4}
.checkout-fields-grid,.delivery-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.checkout-field{display:flex;flex-direction:column;gap:7px;min-width:0}
.checkout-field-full{grid-column:1/-1}
.checkout-field>span{color:#d5d5d5;font-size:12px;font-weight:700}
.checkout-field em{color:#777;font-style:normal;font-weight:500}
.checkout-field input,.checkout-field select{
  width:100%;
  min-height:46px;
  padding:0 14px;
  border:1px solid #343434;
  border-radius:13px;
  outline:none;
  background:#222;
  color:#fff;
  font:inherit;
  font-size:14px;
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.checkout-field input::placeholder{color:#777}
.checkout-field input:focus,.checkout-field select:focus{border-color:#ffb347;box-shadow:0 0 0 3px rgba(255,179,71,.12);background:#252525}
.checkout-field.has-error input,.checkout-field.has-error select{border-color:#f87171;box-shadow:0 0 0 3px rgba(248,113,113,.1)}
.checkout-field-error{min-height:0;color:#fca5a5;font-size:11.5px;line-height:1.35}
.checkout-field-error:empty{display:none}
.checkout-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.checkout-option{
  position:relative;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:11px;
  min-height:82px;
  padding:14px;
  border:1px solid #383838;
  border-radius:16px;
  background:#222;
  cursor:pointer;
  transition:border-color .18s ease,background .18s ease,transform .18s ease;
}
.checkout-option:hover{transform:translateY(-1px);border-color:#555}
.checkout-option.active{border-color:#ffb347;background:linear-gradient(145deg,#322716,#292116);box-shadow:0 0 0 1px rgba(255,179,71,.08)}
.checkout-option input{position:absolute;opacity:0;pointer-events:none}
.checkout-option-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:rgba(255,255,255,.06);font-size:20px}
.checkout-option-copy{min-width:0}
.checkout-option-copy strong{display:block;margin-bottom:4px;color:#fff;font-size:14px;line-height:1.25}
.checkout-option-copy small{display:block;color:#a7a7a7;font-size:11.5px;line-height:1.4}
.checkout-option-check{display:grid;place-items:center;width:22px;height:22px;border:1px solid #555;border-radius:50%;color:transparent;font-size:12px;font-weight:900}
.checkout-option.active .checkout-option-check{border-color:#ffb347;background:#ffb347;color:#24180a}
.checkout-program-note{margin:0 0 12px;padding:10px 12px;border-radius:12px;background:rgba(255,179,71,.08);color:#d6b27b;font-size:12px}
.delivery-fields{
  margin-top:14px;
  padding:16px;
  border:1px solid rgba(255,179,71,.22);
  border-radius:18px;
  background:linear-gradient(145deg,rgba(255,179,71,.075),rgba(255,255,255,.018));
}
.delivery-fields-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}
.delivery-fields-head p{margin:0;color:#aaa;font-size:12px;line-height:1.4;text-align:right}
.delivery-badge{flex:0 0 auto;padding:7px 10px;border-radius:999px;background:#ffb347;color:#24180a;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.04em}
.checkout-delivery-note{display:flex;align-items:flex-start;gap:10px;margin-top:13px;padding:12px;border-radius:13px;background:#1b1b1b;color:#c9c9c9}
.checkout-delivery-note>span{font-size:18px}
.checkout-delivery-note p{margin:0;font-size:12px;line-height:1.5}
.checkout-delivery-note strong{color:#ffca85}
.scheduled-fields{padding:0 2px}
.hidden-field{display:none!important}
#checkout-submit{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:12px;
  width:100%;
  min-height:52px;
  margin:0;
  padding:13px 18px;
  border:0;
  border-radius:15px;
  background:linear-gradient(135deg,#ffbd61,#f39a25);
  color:#17100a;
  font:inherit;
  font-size:14px;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 12px 28px rgba(243,154,37,.18);
  transition:transform .18s ease,filter .18s ease,opacity .18s ease;
}
#checkout-submit:hover{transform:translateY(-1px);filter:brightness(1.04)}
#checkout-submit b{font-size:20px}
#checkout-submit:disabled{opacity:.58;cursor:wait;transform:none}

@media(min-width:900px){
  .checkout-modal.delivery-active .checkout-content{width:min(100%,960px);padding:28px 30px}
  .checkout-modal.delivery-active .checkout-header{padding-bottom:18px}
  .checkout-modal.delivery-active #checkout-form{
    display:grid;
    grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);
    gap:18px;
    align-items:start;
  }
  .checkout-modal.delivery-active .checkout-customer-section{grid-column:1}
  .checkout-modal.delivery-active .checkout-delivery-section{grid-column:2;grid-row:1 / span 2}
  .checkout-modal.delivery-active .scheduled-fields{grid-column:1}
  .checkout-modal.delivery-active #checkout-submit{grid-column:1/-1;width:min(560px,100%);justify-self:center}
  .checkout-modal.delivery-active .checkout-fields-grid{grid-template-columns:1fr}
  .checkout-modal.delivery-active .checkout-field-full{grid-column:auto}
  .checkout-modal.delivery-active .checkout-options{grid-template-columns:1fr}
  .checkout-modal.delivery-active .delivery-grid{grid-template-columns:1fr 1fr}
  .checkout-modal.delivery-active .delivery-grid .checkout-field-full{grid-column:1/-1}
}

@media(max-width:768px){
  .checkout-modal{padding:12px;align-items:start;overflow-y:auto}
  .checkout-content{width:100%;max-height:none;margin:10px auto;padding:22px 15px 18px;border-radius:22px}
  .checkout-close{top:12px;right:12px;width:36px;height:36px;font-size:23px}
  .checkout-header{padding:2px 38px 16px}
  .checkout-header h2{font-size:25px}
  .checkout-header p{font-size:13px}
  .checkout-section{padding:14px;border-radius:17px}
  .checkout-section-heading{margin-bottom:12px}
  .checkout-fields-grid,.delivery-grid,.checkout-options{grid-template-columns:1fr}
  .checkout-field-full{grid-column:auto}
  .checkout-option{min-height:72px;padding:12px}
  .delivery-fields{padding:13px}
  .delivery-fields-head{display:block}
  .delivery-fields-head p{margin-top:8px;text-align:left}
  #checkout-submit{font-size:13px}
}



/* Catálogo administrador */
.catalogo-card{
  position:relative;
}

.catalogo-admin-actions{
  position:absolute;
  top:12px;
  right:12px;
  display:flex;
  gap:8px;
  z-index:5;
  opacity:0;
  transform:translateY(-6px);
  pointer-events:none;
  transition:.22s ease;
}

.catalogo-card:hover .catalogo-admin-actions,
.catalogo-card:focus-within .catalogo-admin-actions{
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;
}

.catalogo-admin-card-btn{
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border:none;
  border-radius:14px;
  font-size:18px;
  line-height:1;
  cursor:pointer;
  transition:.25s ease;
  box-shadow:0 12px 32px rgba(0,0,0,.35);
  backdrop-filter:blur(10px);
}

.catalogo-admin-card-btn span{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
}

.catalogo-admin-card-btn.edit{
  background:#ffb347;
  color:#111;
}

.catalogo-admin-card-btn.disable{
  background:rgba(245,158,11,.92);
  color:#111;
}

.catalogo-admin-card-btn.delete{
  background:rgba(239,68,68,.92);
  color:white;
}

.catalogo-admin-card-btn:hover{
  transform:translateY(-2px) scale(1.03);
  filter:brightness(1.08);
}

@media(max-width:760px){
  .catalogo-admin-actions{
    opacity:1;
    transform:none;
    pointer-events:auto;
  }
}

.catalogo-admin-drawer{
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:2600;
}

.catalogo-admin-drawer.open{
  pointer-events:auto;
}

.catalogo-admin-overlay{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.58);
  opacity:0;
  transition:.28s ease;
}

.catalogo-admin-drawer.open .catalogo-admin-overlay{
  opacity:1;
}

.catalogo-admin-panel{
  position:absolute;
  top:0;
  right:0;
  width:min(560px, 100%);
  height:100%;
  background:#111;
  color:white;
  box-shadow:-20px 0 80px rgba(0,0,0,.45);
  transform:translateX(100%);
  transition:.32s ease;
  display:flex;
  flex-direction:column;
  border-left:1px solid rgba(255,255,255,.08);
}

.catalogo-admin-drawer.open .catalogo-admin-panel{
  transform:translateX(0);
}

.catalogo-admin-header{
  display:flex;
  justify-content:space-between;
  gap:18px;
  padding:28px;
  border-bottom:1px solid rgba(255,255,255,.08);
}

.catalogo-admin-eyebrow{
  display:inline-block;
  margin-bottom:8px;
  color:#ffb347;
  font-size:13px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.catalogo-admin-header h2{
  font-size:30px;
  margin-bottom:6px;
}

.catalogo-admin-header p,
.catalogo-admin-note,
.catalogo-admin-empty{
  color:rgba(255,255,255,.65);
  line-height:1.45;
}

.catalogo-admin-close{
  width:42px;
  height:42px;
  border:none;
  border-radius:50%;
  background:rgba(255,255,255,.08);
  color:white;
  font-size:28px;
  cursor:pointer;
}

.catalogo-admin-tabs{
  display:flex;
  gap:8px;
  padding:18px 22px 0;
  overflow-x:auto;
}

.catalogo-admin-tab{
  border:none;
  white-space:nowrap;
  padding:12px 16px;
  border-radius:999px;
  background:rgba(255,255,255,.07);
  color:rgba(255,255,255,.75);
  font-weight:800;
  cursor:pointer;
}

.catalogo-admin-tab.active{
  background:#ffb347;
  color:#111;
}

.catalogo-admin-form{
  flex:1;
  display:flex;
  flex-direction:column;
  min-height:0;
}

.catalogo-admin-content{
  display:none;
  padding:24px 28px;
  overflow:auto;
  flex:1;
}

.catalogo-admin-content.active{
  display:block;
}

.catalogo-admin-form label{
  display:block;
  margin-bottom:18px;
  font-weight:800;
  color:rgba(255,255,255,.88);
}

.catalogo-admin-form input,
.catalogo-admin-form textarea{
  width:100%;
  margin-top:8px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:16px;
  padding:14px 15px;
  background:#1a1a1a;
  color:white;
  font:inherit;
  outline:none;
}

.catalogo-admin-form input:focus,
.catalogo-admin-form textarea:focus{
  border-color:#ffb347;
}

.catalogo-admin-grid-2{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}

.catalogo-admin-image-preview{
  min-height:220px;
  border-radius:24px;
  background:linear-gradient(135deg,#222,#151515);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  margin-bottom:18px;
}

.catalogo-admin-image-preview img{
  max-width:100%;
  max-height:230px;
  object-fit:contain;
  filter:drop-shadow(0 18px 35px rgba(0,0,0,.42));
}

.catalogo-admin-section-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin-bottom:18px;
}

.catalogo-admin-section-head h3{
  font-size:22px;
}

.catalogo-admin-secondary{
  border:none;
  border-radius:14px;
  padding:11px 14px;
  background:rgba(255,179,71,.14);
  color:#ffd27a;
  font-weight:900;
  cursor:pointer;
}

.catalogo-admin-list{
  display:grid;
  gap:12px;
}

.catalogo-admin-list-item{
  display:flex;
  justify-content:space-between;
  gap:14px;
  align-items:center;
  padding:14px;
  border-radius:16px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
}

.catalogo-admin-list-item strong{
  display:block;
  margin-bottom:4px;
}

.catalogo-admin-list-item span{
  color:rgba(255,255,255,.62);
  font-size:14px;
}

.catalogo-admin-footer{
  display:flex;
  justify-content:space-between;
  gap:14px;
  padding:20px 28px;
  border-top:1px solid rgba(255,255,255,.08);
  background:#111;
}

.catalogo-admin-save,
.catalogo-admin-danger{
  border:none;
  border-radius:16px;
  padding:15px 18px;
  font-weight:900;
  cursor:pointer;
}

.catalogo-admin-save{
  flex:1;
  background:#ffb347;
  color:#111;
}

.catalogo-admin-danger{
  background:rgba(239,68,68,.12);
  color:#fecaca;
  border:1px solid rgba(239,68,68,.35);
}

@media(max-width:650px){
  .catalogo-admin-grid-2,
  .catalogo-admin-actions{
    grid-template-columns:1fr;
  }

  .catalogo-admin-header,
  .catalogo-admin-content,
  .catalogo-admin-footer{
    padding-left:20px;
    padding-right:20px;
  }
}

.catalogo-admin-badge{
  display:inline-flex;
  align-items:center;
  border-radius:999px;
  padding:7px 11px;
  background:rgba(34,197,94,.14);
  color:#86efac;
  font-size:13px;
  font-weight:900;
}

.catalogo-admin-price-list{
  display:grid;
  gap:14px;
  margin-bottom:18px;
}

.catalogo-admin-price-row{
  display:grid !important;
  grid-template-columns:1fr 160px;
  align-items:center;
  gap:14px;
  margin-bottom:0 !important;
  padding:14px;
  border-radius:16px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.08);
}

.catalogo-admin-price-row span{
  text-transform:capitalize;
  color:rgba(255,255,255,.82);
}

.catalogo-admin-price-row input{
  margin-top:0 !important;
  text-align:right;
}

@media(max-width:650px){
  .catalogo-admin-price-row{
    grid-template-columns:1fr;
  }

  .catalogo-admin-price-row input{
    text-align:left;
  }
}



@media(min-width:900px){
  .catalogo-admin-panel{
    width:min(760px, calc(100vw - 72px));
    height:calc(100vh - 48px);
    top:24px;
    right:24px;
    border-radius:28px;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.1);
  }

  .catalogo-admin-header{
    padding:24px 28px 20px;
  }

  .catalogo-admin-header h2{
    font-size:28px;
  }

  .catalogo-admin-tabs{
    flex-wrap:wrap;
    overflow:visible;
    padding:16px 24px 0;
  }

  .catalogo-admin-content{
    padding:22px 28px;
    overflow:auto;
    scrollbar-width:none;
  }

  .catalogo-admin-content::-webkit-scrollbar,
  .catalogo-admin-tabs::-webkit-scrollbar{
    width:0;
    height:0;
  }

  .catalogo-admin-form input,
  .catalogo-admin-form textarea{
    padding:12px 14px;
  }
}

.catalogo-admin-panel,
.catalogo-admin-tabs,
.catalogo-admin-content{
  scrollbar-color:rgba(255,179,71,.35) transparent;
}

.catalogo-admin-price-list{
  gap:12px;
}

.catalogo-admin-price-row{
  position:relative;
  grid-template-columns:minmax(160px, 1fr) 190px !important;
  padding:16px;
  background:linear-gradient(135deg, rgba(255,255,255,.075), rgba(255,255,255,.035));
}

.catalogo-admin-price-row::before{
  content:"S/";
  position:absolute;
  right:154px;
  top:50%;
  transform:translateY(-50%);
  color:rgba(255,255,255,.55);
  font-weight:900;
  pointer-events:none;
}

.catalogo-admin-price-row span{
  display:flex;
  flex-direction:column;
  gap:4px;
  font-weight:900;
}

.catalogo-admin-price-row small{
  color:rgba(255,255,255,.48);
  font-size:12px;
  font-weight:700;
  text-transform:none;
}

.catalogo-admin-price-row input{
  padding-left:42px !important;
  border-radius:14px !important;
  font-weight:900;
  background:rgba(0,0,0,.22) !important;
}

.catalogo-admin-price-help{
  margin:0 0 16px;
  padding:14px 16px;
  border-radius:16px;
  color:rgba(255,255,255,.7);
  background:rgba(255,179,71,.08);
  border:1px solid rgba(255,179,71,.14);
  line-height:1.45;
}

@media(max-width:650px){
  .catalogo-admin-price-row{
    grid-template-columns:1fr !important;
  }

  .catalogo-admin-price-row::before{
    left:30px;
    right:auto;
    top:auto;
    bottom:29px;
    transform:none;
  }

  .catalogo-admin-price-row input{
    text-align:left !important;
  }
}


.catalogo-admin-topbar{
  width:min(1120px, calc(100% - 32px));
  margin:22px auto 0;
  padding:18px;
  border-radius:22px;
  background:linear-gradient(135deg, rgba(255,179,71,.14), rgba(255,255,255,.05));
  border:1px solid rgba(255,179,71,.18);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  color:white;
}

.catalogo-admin-topbar strong,
.catalogo-admin-topbar span{
  display:block;
}

.catalogo-admin-topbar strong{
  margin-bottom:4px;
  font-size:17px;
}

.catalogo-admin-topbar span{
  color:rgba(255,255,255,.68);
  line-height:1.35;
}

.catalogo-admin-new-product{
  border:none;
  border-radius:16px;
  padding:14px 18px;
  background:#ffb347;
  color:#111;
  font-weight:950;
  cursor:pointer;
  white-space:nowrap;
  transition:.24s ease;
}

.catalogo-admin-new-product:hover{
  transform:translateY(-2px);
  filter:brightness(1.05);
}

.catalogo-admin-form select{
  width:100%;
  margin-top:8px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:16px;
  padding:14px 15px;
  background:#1a1a1a;
  color:white;
  font:inherit;
  outline:none;
}

.catalogo-admin-form select:focus{
  border-color:#ffb347;
}

.catalogo-admin-field-create{
  display:none !important;
}

.catalogo-admin-panel.create-mode .catalogo-admin-field-create{
  display:block !important;
}

.catalogo-admin-panel.create-mode .catalogo-admin-field-edit{
  display:none !important;
}

.catalogo-admin-panel.create-mode .catalogo-admin-danger{
  visibility:hidden;
  pointer-events:none;
}

.catalogo-admin-panel.create-mode .catalogo-admin-tabs [data-admin-tab="sabores"],
.catalogo-admin-panel.create-mode .catalogo-admin-tabs [data-admin-tab="surtidos"],
.catalogo-admin-panel.create-mode .catalogo-admin-tabs [data-admin-tab="combos"]{
  opacity:.45;
}

@media(max-width:650px){
  .catalogo-admin-topbar{
    flex-direction:column;
    align-items:stretch;
    text-align:left;
  }

  .catalogo-admin-new-product{
    width:100%;
  }
}

.catalogo-admin-package-extra.catalogo-admin-grid-2{
  display:grid !important;
}


.catalogo-section-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}

.catalogo-admin-new-product-section{
  padding:12px 16px;
  border-radius:14px;
  font-size:14px;
}

.catalogo-admin-topbar{
  display:none;
}

.catalogo-admin-price-row input[type="number"]{
  padding-right:22px !important;
  appearance:textfield;
  -moz-appearance:textfield;
}

.catalogo-admin-price-row input[type="number"]::-webkit-outer-spin-button,
.catalogo-admin-price-row input[type="number"]::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}

@media(min-width:900px){
  .catalogo-admin-price-row{
    grid-template-columns:minmax(220px, 1fr) 220px !important;
  }

  .catalogo-admin-price-row::before{
    right:184px;
  }
}

@media(max-width:650px){
  .catalogo-section-header{
    align-items:flex-start;
    flex-direction:column;
  }

  .catalogo-admin-new-product-section{
    width:100%;
  }
}


.catalogo-admin-mini-form{
  margin: 14px 0 16px;
  padding: 16px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 18px;
  background: rgba(255,255,255,.045);
}

.catalogo-admin-mini-actions{
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 12px;
}

.catalogo-admin-save.small{
  width: auto;
  min-width: 140px;
  padding: 10px 16px;
}

.catalogo-admin-list-item-actions{
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.catalogo-admin-list-item-actions .catalogo-admin-secondary,
.catalogo-admin-list-item-actions .catalogo-admin-danger.small{
  width: auto;
  padding: 8px 12px;
  font-size: 12px;
}

.catalogo-admin-danger.small{
  border: 0;
  border-radius: 999px;
  background: rgba(255, 73, 73, .14);
  color: #ff9b9b;
  cursor: pointer;
}

@media (max-width: 640px){
  .catalogo-admin-mini-actions,
  .catalogo-admin-list-item-actions{
    justify-content: stretch;
  }

  .catalogo-admin-mini-actions button,
  .catalogo-admin-list-item-actions button{
    flex: 1;
  }
}


.catalogo-admin-footer{
  justify-content:flex-end;
}

.catalogo-admin-save{
  flex:0 0 auto;
  min-width:190px;
  width:auto;
  padding-left:24px;
  padding-right:24px;
  box-shadow:0 12px 28px rgba(255,179,71,.18);
}

.catalogo-admin-panel.relation-tab .catalogo-admin-footer{
  display:none;
}

@media(max-width:650px){
  .catalogo-admin-save{
    width:100%;
    min-width:0;
  }
}


.catalogo-admin-actions{
  top:14px;
  right:14px;
  gap:9px;
  padding:7px;
  border-radius:999px;
  background:rgba(15,15,15,.34);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 16px 42px rgba(0,0,0,.28);
  backdrop-filter:blur(16px);
}

.catalogo-admin-card-icon{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.12);
  color:white;
  font-size:16px;
  line-height:1;
  cursor:pointer;
  transition:transform .2s ease, background .2s ease, box-shadow .2s ease;
}

.catalogo-admin-card-icon.edit:hover{
  background:#ffb347;
  color:#111;
  box-shadow:0 10px 26px rgba(255,179,71,.28);
}

.catalogo-admin-card-icon.disable:hover{
  background:#f59e0b;
  color:#111;
  box-shadow:0 10px 26px rgba(245,158,11,.28);
}

.catalogo-admin-card-icon.delete:hover{
  background:#ef4444;
  color:white;
  box-shadow:0 10px 26px rgba(239,68,68,.28);
}

.catalogo-admin-card-icon:hover{
  transform:translateY(-2px) scale(1.06);
}

.catalogo-admin-card-icon:focus-visible{
  outline:2px solid #ffb347;
  outline-offset:3px;
}

.catalogo-admin-disabled-panel{
  width:min(1120px, calc(100% - 32px));
  margin:28px auto 20px;
  padding:20px;
  border-radius:26px;
  background:linear-gradient(135deg, rgba(255,255,255,.075), rgba(255,179,71,.06));
  border:1px solid rgba(255,255,255,.1);
  color:white;
}

.catalogo-admin-disabled-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin-bottom:16px;
}

.catalogo-admin-disabled-header span{
  display:inline-block;
  margin-bottom:6px;
  color:#ffb347;
  font-size:12px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.catalogo-admin-disabled-header h2{
  margin:0 0 5px;
  font-size:25px;
}

.catalogo-admin-disabled-header p{
  margin:0;
  color:rgba(255,255,255,.66);
  line-height:1.42;
}

.catalogo-admin-disabled-groups{
  display:grid;
  gap:12px;
}

.catalogo-admin-disabled-group{
  border-radius:20px;
  background:rgba(0,0,0,.2);
  border:1px solid rgba(255,255,255,.08);
  overflow:hidden;
}

.catalogo-admin-disabled-group summary{
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:16px 18px;
  cursor:pointer;
}

.catalogo-admin-disabled-group summary::-webkit-details-marker{
  display:none;
}

.catalogo-admin-disabled-group summary strong{
  font-size:17px;
}

.catalogo-admin-disabled-group summary span{
  padding:7px 10px;
  border-radius:999px;
  background:rgba(255,179,71,.12);
  color:#ffd27a;
  font-size:13px;
  font-weight:900;
}

.catalogo-admin-disabled-list{
  display:grid;
  gap:10px;
  padding:0 14px 14px;
}

.catalogo-admin-disabled-item{
  display:grid;
  grid-template-columns:58px 1fr auto;
  align-items:center;
  gap:12px;
  padding:12px;
  border-radius:16px;
  background:rgba(255,255,255,.06);
}

.catalogo-admin-disabled-item img{
  width:58px;
  height:58px;
  object-fit:contain;
  border-radius:14px;
  background:rgba(255,255,255,.07);
}

.catalogo-admin-disabled-item strong,
.catalogo-admin-disabled-item span{
  display:block;
}

.catalogo-admin-disabled-item span{
  margin-top:3px;
  color:rgba(255,255,255,.62);
  font-size:14px;
}

.catalogo-admin-reactivate{
  border:0;
  border-radius:999px;
  padding:10px 14px;
  background:#ffb347;
  color:#111;
  font-weight:950;
  cursor:pointer;
  transition:.2s ease;
}

.catalogo-admin-reactivate:hover{
  transform:translateY(-1px);
  filter:brightness(1.05);
}

@media(max-width:700px){
  .catalogo-admin-actions{
    opacity:1;
    transform:none;
    pointer-events:auto;
  }

  .catalogo-admin-disabled-item{
    grid-template-columns:52px 1fr;
  }

  .catalogo-admin-reactivate{
    grid-column:1 / -1;
    width:100%;
  }
}


.catalogo-card > .catalogo-admin-actions{
  position:absolute !important;
  top:14px !important;
  right:14px !important;
  left:auto !important;
  bottom:auto !important;
  width:auto !important;
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px !important;
  margin:0 !important;
  padding:7px !important;
  border-radius:999px !important;
  background:rgba(12,12,12,.42) !important;
  border:1px solid rgba(255,255,255,.14) !important;
  box-shadow:0 14px 38px rgba(0,0,0,.32) !important;
  backdrop-filter:blur(16px);
  z-index:20 !important;
  opacity:0;
  transform:translateY(-6px);
  pointer-events:none;
  transition:opacity .22s ease, transform .22s ease;
}

.catalogo-card:hover > .catalogo-admin-actions,
.catalogo-card:focus-within > .catalogo-admin-actions{
  opacity:1;
  transform:translateY(0);
  pointer-events:auto;
}

.catalogo-card > .catalogo-admin-actions .catalogo-admin-card-icon{
  width:36px !important;
  min-width:36px !important;
  max-width:36px !important;
  height:36px !important;
  min-height:36px !important;
  padding:0 !important;
  margin:0 !important;
  display:grid !important;
  place-items:center !important;
  border:0 !important;
  border-radius:50% !important;
  background:rgba(255,255,255,.13) !important;
  color:#fff !important;
  font-size:15px !important;
  line-height:1 !important;
  cursor:pointer;
  box-shadow:none !important;
}

.catalogo-card > .catalogo-admin-actions .catalogo-admin-card-icon.edit:hover{
  background:#ffb347 !important;
  color:#111 !important;
}

.catalogo-card > .catalogo-admin-actions .catalogo-admin-card-icon.disable:hover{
  background:#f59e0b !important;
  color:#111 !important;
}

.catalogo-card > .catalogo-admin-actions .catalogo-admin-card-icon.delete:hover{
  background:#ef4444 !important;
  color:#fff !important;
}

.catalogo-admin-disabled-category{
  margin:22px 80px 0;
  border-radius:22px;
  background:linear-gradient(135deg, rgba(255,255,255,.075), rgba(255,179,71,.055));
  border:1px solid rgba(255,255,255,.1);
  color:white;
  overflow:hidden;
}

.catalogo-admin-disabled-category summary{
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:16px 18px;
  cursor:pointer;
}

.catalogo-admin-disabled-category summary::-webkit-details-marker{
  display:none;
}

.catalogo-admin-disabled-title{
  font-weight:950;
  color:#ffb347;
}

.catalogo-admin-disabled-count{
  padding:7px 10px;
  border-radius:999px;
  background:rgba(255,179,71,.13);
  color:#ffd27a;
  font-size:13px;
  font-weight:900;
  white-space:nowrap;
}

.catalogo-admin-disabled-category .catalogo-admin-disabled-list{
  padding:0 14px 14px;
}

@media(max-width:760px){
  .catalogo-card > .catalogo-admin-actions{
    opacity:1;
    transform:none;
    pointer-events:auto;
  }

  .catalogo-admin-disabled-category{
    margin:18px 20px 0;
  }
}


.catalogo-admin-section-actions{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}

.catalogo-admin-disabled-open{
  position:relative;
  width:42px;
  height:42px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:50%;
  background:rgba(255,255,255,.08);
  color:#fff;
  display:grid;
  place-items:center;
  cursor:pointer;
  transition:.22s ease;
}

.catalogo-admin-disabled-open:hover{
  transform:translateY(-2px);
  background:rgba(255,179,71,.18);
  border-color:rgba(255,179,71,.42);
}

.catalogo-admin-disabled-open small{
  position:absolute;
  top:-6px;
  right:-6px;
  min-width:19px;
  height:19px;
  padding:0 5px;
  border-radius:999px;
  background:#ffb347;
  color:#111;
  font-size:11px;
  line-height:19px;
  font-weight:950;
}

.catalogo-admin-action-text{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
}

.catalogo-admin-list-item.is-editing{
  display:none;
}

.catalogo-admin-disabled-template{
  display:none !important;
}

.catalogo-admin-disabled-modal{
  position:fixed;
  inset:0;
  z-index:2700;
  pointer-events:none;
}

.catalogo-admin-disabled-modal.open{
  pointer-events:auto;
}

.catalogo-admin-disabled-modal-overlay{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.62);
  opacity:0;
  transition:.25s ease;
}

.catalogo-admin-disabled-modal.open .catalogo-admin-disabled-modal-overlay{
  opacity:1;
}

.catalogo-admin-disabled-modal-panel{
  position:absolute;
  top:50%;
  left:50%;
  width:min(760px, calc(100% - 34px));
  max-height:min(78vh, 720px);
  transform:translate(-50%, -46%) scale(.96);
  opacity:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border-radius:28px;
  background:#111;
  color:#fff;
  border:1px solid rgba(255,255,255,.1);
  box-shadow:0 30px 90px rgba(0,0,0,.48);
  transition:.25s ease;
}

.catalogo-admin-disabled-modal.open .catalogo-admin-disabled-modal-panel{
  transform:translate(-50%, -50%) scale(1);
  opacity:1;
}

.catalogo-admin-disabled-modal-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding:24px 26px;
  border-bottom:1px solid rgba(255,255,255,.08);
}

.catalogo-admin-disabled-modal-header span{
  display:inline-block;
  margin-bottom:6px;
  color:#ffb347;
  font-size:12px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.catalogo-admin-disabled-modal-header h2{
  margin:0 0 6px;
  font-size:25px;
}

.catalogo-admin-disabled-modal-header p{
  margin:0;
  color:rgba(255,255,255,.65);
  line-height:1.4;
}

.catalogo-admin-disabled-modal-close{
  width:40px;
  height:40px;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.08);
  color:white;
  font-size:26px;
  line-height:1;
  cursor:pointer;
}

.catalogo-admin-disabled-modal-body{
  padding:18px;
  overflow:auto;
}

.catalogo-admin-disabled-modal .catalogo-admin-disabled-list{
  display:grid;
  gap:12px;
}

@media(max-width:760px){
  .catalogo-card{
    display:flex;
    flex-direction:column;
  }

  .catalogo-card > .catalogo-image{
    order:1;
  }

  .catalogo-card > .catalogo-info{
    order:2;
  }

  .catalogo-card > .catalogo-admin-actions{
    order:3;
    position:static !important;
    width:auto !important;
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:8px !important;
    margin:0 18px 20px !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    backdrop-filter:none !important;
    opacity:1 !important;
    transform:none !important;
    pointer-events:auto !important;
  }

  .catalogo-card > .catalogo-admin-actions .catalogo-admin-card-icon{
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    height:auto !important;
    min-height:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:8px !important;
    padding:10px 12px !important;
    border-radius:13px !important;
    background:rgba(255,255,255,.08) !important;
    color:#fff !important;
    font-size:14px !important;
    font-weight:850 !important;
  }

  .catalogo-card > .catalogo-admin-actions .catalogo-admin-card-icon.edit{
    background:rgba(255,179,71,.16) !important;
    color:#ffd27a !important;
  }

  .catalogo-card > .catalogo-admin-actions .catalogo-admin-card-icon.disable{
    background:rgba(245,158,11,.14) !important;
    color:#fcd34d !important;
  }

  .catalogo-card > .catalogo-admin-actions .catalogo-admin-card-icon.delete{
    background:rgba(239,68,68,.14) !important;
    color:#fca5a5 !important;
  }

  .catalogo-admin-action-text{
    position:static;
    width:auto;
    height:auto;
    overflow:visible;
    clip:auto;
    white-space:normal;
  }

  .catalogo-admin-disabled-modal-panel{
    top:auto;
    left:0;
    right:0;
    bottom:0;
    width:100%;
    max-height:82vh;
    border-radius:26px 26px 0 0;
    transform:translateY(100%);
  }

  .catalogo-admin-disabled-modal.open .catalogo-admin-disabled-modal-panel{
    transform:translateY(0);
  }

  .catalogo-admin-disabled-modal-header{
    padding:20px;
  }
}


.catalogo-admin-disabled-open[hidden]{display:none !important;}
@media(max-width:650px){
  .catalogo-section-header{width:100%;}
  .catalogo-admin-section-actions{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:nowrap;}
  .catalogo-admin-new-product-section{width:auto;flex:0 1 auto;}
  .catalogo-admin-disabled-open{flex:0 0 42px;margin-left:auto;}
}



.catalogo-admin-list-item.is-inactive{opacity:.66;border-style:dashed;background:rgba(255,255,255,.035)}
.catalogo-admin-item-copy{min-width:0;flex:1}.catalogo-admin-item-title{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.catalogo-admin-item-title em{font-style:normal;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;padding:4px 7px;border-radius:999px;background:rgba(148,163,184,.14);color:#cbd5e1}
.catalogo-admin-switch{position:relative;width:46px;height:26px;display:inline-flex!important;margin:0!important;flex:0 0 auto;cursor:pointer}.catalogo-admin-switch input{position:absolute;opacity:0;pointer-events:none}.catalogo-admin-switch span{width:46px;height:26px;border-radius:999px;background:#4b5563;transition:.2s;position:relative}.catalogo-admin-switch span:after{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;border-radius:50%;background:white;box-shadow:0 2px 8px rgba(0,0,0,.35);transition:.2s}.catalogo-admin-switch input:checked+span{background:#22c55e}.catalogo-admin-switch input:checked+span:after{transform:translateX(20px)}.catalogo-admin-switch input:focus-visible+span{outline:3px solid rgba(255,179,71,.35);outline-offset:2px}
.catalogo-admin-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}.catalogo-admin-chips b{font-size:11px;padding:5px 8px;border-radius:999px;background:rgba(255,179,71,.12);color:#ffd27a;font-weight:850}.catalogo-admin-chips span{font-size:12px;color:rgba(255,255,255,.42)}
.catalogo-admin-flavor-picker{border:1px solid rgba(255,255,255,.1);border-radius:18px;padding:15px;margin:0 0 18px}.catalogo-admin-flavor-picker legend{padding:0 8px;font-weight:900}.catalogo-admin-flavor-picker>p{margin:0 0 12px;color:rgba(255,255,255,.58);font-size:13px}.catalogo-admin-flavor-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.catalogo-admin-flavor-option{display:flex!important;align-items:center;gap:9px;margin:0!important;padding:10px 11px;border-radius:13px;background:rgba(255,255,255,.055);font-weight:800!important;cursor:pointer}.catalogo-admin-flavor-option input{width:17px!important;height:17px;margin:0!important;accent-color:#ffb347}.catalogo-admin-flavor-option span{font-size:13px;color:white}.catalogo-admin-flavor-option small{margin-left:auto;font-size:9px;color:#fca5a5}.catalogo-admin-flavor-option.is-inactive{opacity:.68}
@media(max-width:640px){.catalogo-admin-flavor-options{grid-template-columns:1fr}.catalogo-admin-list-item{align-items:flex-start;flex-direction:column}.catalogo-admin-list-item-actions{width:100%;align-items:center}.catalogo-admin-list-item-actions .catalogo-admin-switch{flex:0 0 46px!important}.catalogo-admin-list-item-actions .catalogo-admin-secondary,.catalogo-admin-list-item-actions .catalogo-admin-danger.small{flex:1}}



.catalogo-admin-list.is-editing-mode .catalogo-admin-list-item:not(.is-editing){
  display:none;
}

.catalogo-admin-list-item{
  transition:opacity .24s ease, transform .24s ease, filter .24s ease, background-color .24s ease;
}

.catalogo-admin-list-item.is-deactivating{
  opacity:.28;
  transform:translateX(10px) scale(.985);
  filter:grayscale(.55);
  pointer-events:none;
}

.catalogo-admin-list-item.is-activating{
  opacity:.72;
  transform:translateX(-4px) scale(1.01);
  filter:brightness(1.08);
  pointer-events:none;
}

.catalogo-admin-file-field{
  position:relative;
  display:flex !important;
  flex-direction:column;
  align-items:flex-start;
}

.catalogo-admin-file-field input[type="file"]{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}

.catalogo-admin-file-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:42px;
  margin-top:8px;
  padding:10px 15px;
  border:1px solid rgba(255,179,71,.35);
  border-radius:13px;
  background:rgba(255,179,71,.13);
  color:#ffd27a !important;
  font-size:13px !important;
  font-weight:900;
  cursor:pointer;
  transition:transform .18s ease, background-color .18s ease, border-color .18s ease;
}

.catalogo-admin-file-field:hover .catalogo-admin-file-button,
.catalogo-admin-file-field:focus-within .catalogo-admin-file-button{
  transform:translateY(-1px);
  background:rgba(255,179,71,.2);
  border-color:rgba(255,179,71,.58);
}

.catalogo-admin-image-status{
  display:block;
  margin-top:9px;
  color:rgba(255,255,255,.55);
  font-size:12px;
  line-height:1.35;
}

.catalogo-admin-image-status.has-image{
  color:#86efac;
}

@media(min-width:761px){
  .catalogo-admin-delete-action{
    width:38px;
    height:38px;
    padding:0;
    display:grid;
    place-items:center;
    border-radius:12px;
  }
  .catalogo-admin-delete-action::before{
    content:"🗑";
    font-size:16px;
    line-height:1;
  }
  .catalogo-admin-delete-action span{
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip:rect(0 0 0 0);
    white-space:nowrap;
  }
}



.catalogo-admin-flavor-option.is-inactive{
  cursor:not-allowed;
  opacity:.48;
}
.catalogo-admin-flavor-option.is-inactive input{cursor:not-allowed}
.catalogo-admin-product-image-field{
  max-width:100%;
}
@media(min-width:761px){
  .catalogo-admin-list-item-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    min-height:42px;
  }
  .catalogo-admin-list-item-actions .catalogo-admin-secondary,
  .catalogo-admin-list-item-actions .catalogo-admin-delete-action,
  .catalogo-admin-list-item-actions .catalogo-admin-switch{
    align-self:center;
    margin-top:0 !important;
    margin-bottom:0 !important;
  }
}


.catalogo-admin-product-image-layout{
  display:grid;
  grid-template-columns:1fr;
  gap:18px;
  align-items:stretch;
}

.catalogo-admin-product-image-details{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:16px;
  min-width:0;
  padding:4px 0;
}

.catalogo-admin-product-image-details .catalogo-admin-field-edit,
.catalogo-admin-product-image-details .catalogo-admin-product-image-field{
  width:100%;
  margin:0;
}

.catalogo-admin-list.is-creating-mode .catalogo-admin-list-item{
  display:none;
}

.catalogo-admin-mini-form[data-form-mode="create"]{
  animation:catalogoAdminFormEnter .2s ease both;
}

.catalogo-admin-mini-form[data-form-mode="edit"]{
  animation:catalogoAdminFormEnter .2s ease both;
}

@keyframes catalogoAdminFormEnter{
  from{opacity:0;transform:translateY(6px)}
  to{opacity:1;transform:translateY(0)}
}

@media(min-width:761px){
  .catalogo-admin-product-image-layout{
    grid-template-columns:minmax(240px,.95fr) minmax(280px,1.05fr);
    gap:24px;
  }

  .catalogo-admin-product-image-layout .catalogo-admin-image-preview{
    min-height:330px;
    height:100%;
  }

  .catalogo-admin-product-image-layout .catalogo-admin-image-preview img{
    width:100%;
    height:100%;
    object-fit:contain;
  }

  .catalogo-admin-product-image-details{
    padding:18px;
    border:1px solid rgba(255,255,255,.09);
    border-radius:20px;
    background:rgba(255,255,255,.035);
  }
}
.catalogo-admin-product-image-layout .catalogo-admin-image-preview{
  margin-bottom:0;
}

@media(min-width:761px){
  .catalogo-admin-product-image-layout .catalogo-admin-image-preview img{
    max-height:none;
  }
}



.catalogo-admin-menu-trigger{position:fixed;top:14px;left:14px;z-index:3250;width:42px;height:42px;border:1px solid rgba(255,255,255,.15);border-radius:14px;background:rgba(17,17,17,.94);display:grid;align-content:center;justify-items:center;gap:4px;cursor:pointer;box-shadow:0 12px 30px rgba(0,0,0,.28)}
.catalogo-admin-menu-trigger span{width:18px;height:2px;border-radius:3px;background:#ffb347}
body:has(.catalogo-admin-menu-trigger) .worker-identity{left:66px;width:min(560px,calc(100vw - 80px))}
.catalogo-admin-menu{position:fixed;inset:0;z-index:3400;pointer-events:none}.catalogo-admin-menu.open{pointer-events:auto}.catalogo-admin-menu-overlay{position:absolute;inset:0;background:rgba(0,0,0,.58);opacity:0;transition:.25s}.catalogo-admin-menu.open .catalogo-admin-menu-overlay{opacity:1}.catalogo-admin-menu-panel{position:absolute;left:0;top:0;height:100%;width:min(390px,92vw);background:#111;color:#fff;transform:translateX(-100%);transition:.3s ease;box-shadow:24px 0 70px rgba(0,0,0,.45);display:flex;flex-direction:column}.catalogo-admin-menu.open .catalogo-admin-menu-panel{transform:none}.catalogo-admin-menu-header{display:flex;justify-content:space-between;align-items:flex-start;padding:24px;border-bottom:1px solid rgba(255,255,255,.09)}.catalogo-admin-menu-header span{font-size:12px;color:#ffb347;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.catalogo-admin-menu-header h2{margin-top:5px}.catalogo-admin-menu-header button{width:40px;height:40px;border:0;border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font-size:26px;cursor:pointer}.catalogo-admin-menu-body{padding:22px;overflow:auto}.catalogo-admin-menu-body h3{margin:8px 0 12px;color:rgba(255,255,255,.55);font-size:12px;text-transform:uppercase;letter-spacing:.1em}.catalogo-admin-menu-action{width:100%;display:flex;align-items:center;gap:13px;text-align:left;padding:14px;margin-bottom:10px;border:1px solid rgba(255,255,255,.08);border-radius:17px;background:rgba(255,255,255,.05);color:#fff;cursor:pointer}.catalogo-admin-menu-action>span:first-child{width:36px;height:36px;display:grid;place-items:center;border-radius:12px;background:rgba(255,179,71,.13);color:#ffd27a;font-size:18px}.catalogo-admin-menu-action strong,.catalogo-admin-menu-action small{display:block}.catalogo-admin-menu-action small{margin-top:4px;color:rgba(255,255,255,.54)}.catalogo-admin-menu-action.primary{border-color:rgba(255,179,71,.3);background:rgba(255,179,71,.1)}.catalogo-admin-menu-links{display:grid;grid-template-columns:1fr 1fr;gap:9px}.catalogo-admin-menu-links a{padding:12px;border-radius:13px;background:rgba(255,255,255,.05);color:#fff;text-decoration:none;font-weight:800}.catalogo-admin-assortment-requirement{margin:-6px 0 18px;padding:12px 14px;border-radius:14px;background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.25);color:#fcd34d;font-size:14px}.catalogo-admin-disabled-filters{display:flex;gap:8px;overflow:auto;padding:0 24px 14px}.catalogo-admin-disabled-filters button{white-space:nowrap;border:0;border-radius:999px;padding:9px 12px;background:rgba(255,255,255,.07);color:#fff;cursor:pointer}.catalogo-admin-disabled-filters button.active{background:#ffb347;color:#111;font-weight:900}.catalogo-admin-disabled-filters span{display:inline-grid;place-items:center;min-width:20px;height:20px;margin-left:5px;border-radius:50%;background:rgba(0,0,0,.2);font-size:11px}.catalogo-admin-price-help{display:none!important}
@media(max-width:768px){.catalogo-admin-menu-trigger{top:8px;left:8px;width:38px;height:38px;border-radius:12px}body:has(.catalogo-admin-menu-trigger) .worker-identity{left:54px!important;right:auto!important;width:auto!important}.catalogo-admin-menu-panel{width:min(360px,94vw)}.catalogo-admin-menu-links{grid-template-columns:1fr}}



.catalogo-admin-price-heading>div p{margin:4px 0 0;color:rgba(255,255,255,.58);font-size:13px}.catalogo-admin-dynamic-price{padding:16px;border:1px solid rgba(255,255,255,.1);border-radius:18px;background:rgba(255,255,255,.045);transition:.22s}.catalogo-admin-dynamic-price+.catalogo-admin-dynamic-price{margin-top:12px}.catalogo-admin-dynamic-price.is-inactive{opacity:.58}.catalogo-admin-dynamic-price-top{display:grid;grid-template-columns:1.4fr 1fr 1fr .65fr;gap:12px}.catalogo-admin-dynamic-price label{display:grid;gap:7px;font-size:12px;font-weight:800;color:rgba(255,255,255,.72)}.catalogo-admin-dynamic-price input,.catalogo-admin-dynamic-price select,.catalogo-admin-price-type-box input{width:100%;min-height:44px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:#171717;color:#fff;padding:0 12px}.catalogo-admin-dynamic-price-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}.catalogo-admin-dynamic-price-bottom>div{display:flex;gap:8px}.catalogo-admin-price-delete{width:42px;height:42px;border:0;border-radius:12px;background:rgba(239,68,68,.14);color:#fecaca;cursor:pointer}.catalogo-admin-price-type-box{margin-top:16px;padding:18px;border:1px solid rgba(255,179,71,.28);border-radius:18px;background:rgba(255,179,71,.08)}.catalogo-admin-price-type-box h4{margin:0 0 14px}.catalogo-admin-switch{display:flex!important;grid-auto-flow:column;align-items:center;gap:8px!important}.catalogo-admin-switch input{position:absolute;opacity:0;pointer-events:none}.catalogo-admin-switch span{width:46px;height:26px;border-radius:999px;background:#4b5563;position:relative;transition:.2s}.catalogo-admin-switch span:after{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;border-radius:50%;background:white;transition:.2s}.catalogo-admin-switch input:checked+span{background:#22c55e}.catalogo-admin-switch input:checked+span:after{transform:translateX(20px)}
@media(max-width:900px){.catalogo-admin-dynamic-price-top{grid-template-columns:1fr 1fr}.catalogo-admin-price-heading{align-items:flex-start}.catalogo-admin-price-heading>div{max-width:65%}}
@media(max-width:560px){.catalogo-admin-dynamic-price-top{grid-template-columns:1fr}.catalogo-admin-dynamic-price-bottom{align-items:flex-end}.catalogo-admin-price-heading{gap:10px}.catalogo-admin-price-heading>div{max-width:none}.catalogo-admin-price-heading{flex-wrap:wrap}.catalogo-admin-price-heading button{width:100%}}


.catalogo-admin-price-table{display:grid;gap:8px}.catalogo-admin-price-table-head,.catalogo-admin-price-row{display:grid;grid-template-columns:40px minmax(180px,1.5fr) minmax(120px,.8fr) minmax(130px,.85fr) 58px 44px;gap:10px;align-items:center}.catalogo-admin-price-table-head{padding:0 12px;color:rgba(255,255,255,.58);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.catalogo-admin-price-row{padding:12px;border:1px solid rgba(255,255,255,.1);border-radius:16px;background:rgba(255,255,255,.045);transition:opacity .2s,border-color .2s,transform .2s,background .2s}.catalogo-admin-price-row.is-inactive{opacity:.55}.catalogo-admin-price-row.has-pending-change{border-color:rgba(255,179,71,.48);background:rgba(255,179,71,.07)}.catalogo-admin-price-row.is-dragging{opacity:.4;transform:scale(.99)}.catalogo-admin-price-row input{width:100%;min-width:0;height:44px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:#171717;color:#fff;padding:0 12px}.catalogo-admin-price-drag{width:38px;height:42px;border:0;border-radius:11px;background:transparent;color:rgba(255,255,255,.55);font-size:24px;line-height:1;cursor:grab;touch-action:none}.catalogo-admin-price-drag:active{cursor:grabbing;color:#ffb347}.catalogo-admin-price-type{min-width:0}.catalogo-admin-price-switch{justify-content:center}.catalogo-admin-price-switch span{margin:0}.catalogo-admin-price-delete{width:42px;height:42px}.catalogo-admin-price-delete:disabled{opacity:.25;cursor:not-allowed}.catalogo-admin-price-table.is-create .catalogo-admin-price-table-head,.catalogo-admin-price-table.is-create .catalogo-admin-price-row{grid-template-columns:1.3fr 1fr 1fr}.catalogo-admin-price-heading>div p{margin-top:4px}
@media(max-width:900px){.catalogo-admin-price-table-head{display:none}.catalogo-admin-price-row{grid-template-columns:36px 1fr 1fr 52px 42px}.catalogo-admin-price-row [data-price-min]{grid-column:2/4}.catalogo-admin-price-table.is-create .catalogo-admin-price-table-head{display:none}.catalogo-admin-price-table.is-create .catalogo-admin-price-row{grid-template-columns:1fr 1fr}.catalogo-admin-price-table.is-create .catalogo-admin-price-row input:last-child{grid-column:1/-1}}
@media(max-width:560px){.catalogo-admin-price-row{grid-template-columns:34px 1fr 48px 40px;padding:10px;gap:8px}.catalogo-admin-price-row .catalogo-admin-price-type{grid-column:2/5}.catalogo-admin-price-row [data-price-value]{grid-column:2/3}.catalogo-admin-price-row [data-price-min]{grid-column:3/5}.catalogo-admin-price-switch{grid-column:3/4}.catalogo-admin-price-delete{grid-column:4/5}.catalogo-admin-price-drag{grid-row:1/3}.catalogo-admin-price-table.is-create .catalogo-admin-price-row{grid-template-columns:1fr}.catalogo-admin-price-table.is-create .catalogo-admin-price-row>*{grid-column:1!important}}



.catalogo-admin-price-table{display:grid;gap:9px;min-width:0}
.catalogo-admin-price-table-head,.catalogo-admin-price-row{display:grid;grid-template-columns:56px minmax(230px,1fr) minmax(150px,220px) 86px;gap:12px;align-items:center}
.catalogo-admin-price-table-head{padding:0 14px;color:rgba(255,255,255,.58);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.065em}
.catalogo-admin-price-table-head span:first-child,.catalogo-admin-price-table-head span:last-child{text-align:center}
.catalogo-admin-price-row{padding:11px 14px;border:1px solid rgba(255,255,255,.1);border-radius:16px;background:rgba(255,255,255,.045)}
.catalogo-admin-price-row .catalogo-admin-price-drag{justify-self:center}
.catalogo-admin-price-drag.is-static{display:grid;place-items:center;cursor:default}
.catalogo-admin-price-type,.catalogo-admin-price-money{min-width:0}
.catalogo-admin-price-money{height:44px;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px;padding:0 12px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:#171717}
.catalogo-admin-price-money>span{color:rgba(255,255,255,.58);font-weight:900}
.catalogo-admin-price-money input{height:40px!important;padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important}
.catalogo-admin-price-switch{justify-self:center!important}
.catalogo-admin-price-delete{display:none!important}
.catalogo-admin-price-table.is-create .catalogo-admin-price-table-head,.catalogo-admin-price-table.is-create .catalogo-admin-price-row{grid-template-columns:56px minmax(230px,1fr) minmax(150px,220px) 86px}
@media(max-width:900px){
  .catalogo-admin-price-list{overflow-x:auto;padding-bottom:5px}
  .catalogo-admin-price-table{min-width:700px}
  .catalogo-admin-price-table-head{display:grid}
  .catalogo-admin-price-row{grid-template-columns:56px minmax(230px,1fr) minmax(150px,220px) 86px}
  .catalogo-admin-price-row .catalogo-admin-price-type,.catalogo-admin-price-row .catalogo-admin-price-money,.catalogo-admin-price-switch,.catalogo-admin-price-drag{grid-column:auto;grid-row:auto}
  .catalogo-admin-price-table.is-create .catalogo-admin-price-table-head,.catalogo-admin-price-table.is-create .catalogo-admin-price-row{grid-template-columns:56px minmax(230px,1fr) minmax(150px,220px) 86px}
  .catalogo-admin-price-table.is-create .catalogo-admin-price-row>*{grid-column:auto!important}
}


.catalogo-admin-price-list{
  overflow:visible;
  padding-bottom:0;
}

.catalogo-admin-price-table{
  display:grid;
  gap:10px;
  width:100%;
  min-width:0;
}

.catalogo-admin-price-table-head,
.catalogo-admin-price-row,
.catalogo-admin-price-table.is-create .catalogo-admin-price-table-head,
.catalogo-admin-price-table.is-create .catalogo-admin-price-row{
  grid-template-columns:minmax(112px,.55fr) minmax(230px,1.65fr) minmax(190px,.95fr) minmax(86px,.48fr) !important;
  gap:14px;
  align-items:center;
}

.catalogo-admin-price-table-head{
  padding:0 18px 2px;
}

.catalogo-admin-price-table-head span{
  min-width:0;
}

.catalogo-admin-price-table-head span:first-child,
.catalogo-admin-price-table-head span:last-child{
  text-align:center;
}

.catalogo-admin-price-row{
  min-height:68px;
  padding:10px 18px;
  border-radius:17px;
  background:linear-gradient(90deg,rgba(255,255,255,.055),rgba(255,255,255,.035));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025);
}

.catalogo-admin-price-row:hover{
  border-color:rgba(255,179,71,.22);
  background:linear-gradient(90deg,rgba(255,255,255,.07),rgba(255,179,71,.035));
}

.catalogo-admin-price-order{
  min-width:0;
  display:grid;
  grid-template-columns:42px 1fr;
  align-items:center;
  gap:10px;
}

.catalogo-admin-price-order strong{
  color:#fff;
  font-size:16px;
  line-height:1;
  text-align:center;
}

.catalogo-admin-price-drag{
  width:38px;
  height:42px;
  justify-self:center;
}

.catalogo-admin-price-type,
.catalogo-admin-price-money{
  width:100%;
  min-width:0;
}

.catalogo-admin-price-type input,
.catalogo-admin-price-money{
  height:46px;
  border-radius:13px;
}

.catalogo-admin-price-type input{
  font-weight:800;
}

.catalogo-admin-price-money{
  grid-template-columns:auto minmax(0,1fr);
  gap:10px;
  padding:0 14px;
}

.catalogo-admin-price-money>span{
  white-space:nowrap;
}

.catalogo-admin-price-money input{
  width:100%;
  text-align:right;
  font-weight:900;
  font-variant-numeric:tabular-nums;
}

.catalogo-admin-price-switch{
  justify-self:center!important;
  justify-content:center!important;
}

@media(max-width:820px){
  .catalogo-admin-price-list{
    overflow-x:auto;
    padding-bottom:6px;
  }

  .catalogo-admin-price-table{
    min-width:720px;
  }
}


.catalogo-admin-price-table-head,
.catalogo-admin-price-row,
.catalogo-admin-price-table.is-create .catalogo-admin-price-table-head,
.catalogo-admin-price-table.is-create .catalogo-admin-price-row{
  grid-template-columns:minmax(250px,1.5fr) minmax(190px,.85fr) minmax(86px,.42fr)!important;
  gap:14px;
}
.catalogo-admin-price-table-head span:first-child{text-align:left}
.catalogo-admin-price-type select{
  width:100%;height:46px;border:1px solid rgba(255,255,255,.12);border-radius:13px;
  background:#171717;color:#fff;padding:0 42px 0 14px;font:inherit;font-weight:800;outline:none;
}
.catalogo-admin-price-type select:focus{border-color:#ffb347}
.catalogo-admin-price-money input{appearance:textfield;-moz-appearance:textfield}
.catalogo-admin-price-money input::-webkit-inner-spin-button,
.catalogo-admin-price-money input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
#admin-precio-nuevo:disabled{opacity:.38;cursor:not-allowed;filter:none}

.catalogo-admin-types-modal{position:fixed;inset:0;z-index:2900;pointer-events:none}
.catalogo-admin-types-modal.open{pointer-events:auto}
.catalogo-admin-types-overlay{position:absolute;inset:0;background:rgba(0,0,0,.72);opacity:0;transition:.25s}
.catalogo-admin-types-modal.open .catalogo-admin-types-overlay{opacity:1}
.catalogo-admin-types-panel{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-46%) scale(.98);width:min(860px,calc(100% - 32px));max-height:min(760px,calc(100vh - 36px));display:flex;flex-direction:column;background:#111;border:1px solid rgba(255,255,255,.1);border-radius:28px;box-shadow:0 28px 90px rgba(0,0,0,.65);opacity:0;transition:.25s}
.catalogo-admin-types-modal.open .catalogo-admin-types-panel{opacity:1;transform:translate(-50%,-50%) scale(1)}
.catalogo-admin-types-header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;padding:25px 28px;border-bottom:1px solid rgba(255,255,255,.08)}
.catalogo-admin-types-header h2{margin:0 0 6px;font-size:29px}.catalogo-admin-types-header p{margin:0;color:rgba(255,255,255,.62)}
.catalogo-admin-types-content{padding:24px 28px 28px;overflow:auto}
.catalogo-admin-types-form{display:grid;grid-template-columns:1fr 1.35fr auto;gap:14px;align-items:end;padding:18px;border:1px solid rgba(255,179,71,.22);border-radius:19px;background:rgba(255,179,71,.055);margin-bottom:20px}
.catalogo-admin-types-form label{display:grid;gap:7px;color:rgba(255,255,255,.82);font-weight:800;font-size:13px}
.catalogo-admin-types-form input[type="text"]{height:44px;border:1px solid rgba(255,255,255,.12);border-radius:12px;background:#181818;color:#fff;padding:0 13px;font:inherit;outline:none}
.catalogo-admin-types-form input[type="text"]:focus{border-color:#ffb347}
.catalogo-admin-types-state{display:flex!important;align-items:center;justify-content:center;min-height:44px;margin:0!important}
.catalogo-admin-types-form-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:10px}
.catalogo-admin-types-form-actions .catalogo-admin-save{flex:0 0 auto}
.catalogo-admin-types-list{display:grid;gap:10px}
.catalogo-admin-type-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:16px;align-items:center;padding:15px 16px;border:1px solid rgba(255,255,255,.09);border-radius:16px;background:rgba(255,255,255,.045)}
.catalogo-admin-type-item.is-inactive{opacity:.6}.catalogo-admin-type-item strong{display:block;color:#fff;margin-bottom:5px}.catalogo-admin-type-item small{display:block;color:rgba(255,255,255,.58);line-height:1.35}
.catalogo-admin-type-status{padding:7px 10px;border-radius:999px;background:rgba(34,197,94,.13);color:#86efac;font-size:12px;font-weight:900}.catalogo-admin-type-item.is-inactive .catalogo-admin-type-status{background:rgba(148,163,184,.12);color:#cbd5e1}
.catalogo-admin-type-actions{display:flex;gap:8px}.catalogo-admin-type-actions button{border:0;border-radius:11px;padding:9px 12px;background:rgba(255,255,255,.08);color:#fff;font-weight:800;cursor:pointer}.catalogo-admin-type-actions button.danger{background:rgba(239,68,68,.12);color:#fecaca}
@media(max-width:760px){.catalogo-admin-types-form{grid-template-columns:1fr}.catalogo-admin-types-form-actions{grid-column:1}.catalogo-admin-type-item{grid-template-columns:1fr auto}.catalogo-admin-type-actions{grid-column:1/-1;justify-content:flex-end}.catalogo-admin-price-list{overflow-x:auto}.catalogo-admin-price-table{min-width:620px}}


.catalogo-admin-price-money{
  display:block!important;
}
.catalogo-admin-price-money > span{
  display:none!important;
}
.catalogo-admin-price-money input{
  height:46px;
  padding:0 14px!important;
  border:1px solid rgba(255,255,255,.12);
  border-radius:13px;
  background:#171717;
  color:#fff;
}
.catalogo-admin-price-controls{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-width:86px;
}
.catalogo-admin-price-delete{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border:1px solid rgba(239,68,68,.2);
  border-radius:11px;
  background:rgba(239,68,68,.1);
  color:#fecaca;
  cursor:pointer;
  transition:.2s ease;
}
.catalogo-admin-price-delete:hover{
  transform:translateY(-1px);
  background:rgba(239,68,68,.2);
  border-color:rgba(239,68,68,.4);
}
.catalogo-admin-types-content{
  overflow:visible;
}
.catalogo-admin-types-toolbar{
  display:flex;
  justify-content:flex-end;
  margin-bottom:16px;
}
.catalogo-admin-types-form[hidden],
.catalogo-admin-type-edit-fields[hidden],
.catalogo-admin-type-view[hidden],
.catalogo-admin-type-actions button[hidden]{
  display:none!important;
}
.catalogo-admin-types-form{
  grid-template-columns:minmax(180px,.8fr) minmax(260px,1.2fr) auto;
  align-items:end;
}
.catalogo-admin-types-form-actions{
  grid-column:auto;
  align-self:end;
}
.catalogo-admin-types-list{
  max-height:min(430px,calc(100vh - 330px));
  overflow-y:auto;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,255,255,.18) transparent;
}
.catalogo-admin-type-item{
  grid-template-columns:minmax(0,1fr) auto auto;
}
.catalogo-admin-type-edit-fields{
  display:grid;
  grid-template-columns:minmax(150px,.75fr) minmax(220px,1.25fr);
  gap:10px;
}
.catalogo-admin-type-edit-fields input{
  min-width:0;
  height:42px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:11px;
  background:#181818;
  color:#fff;
  padding:0 12px;
  font:inherit;
  outline:none;
}
.catalogo-admin-type-edit-fields input:focus{
  border-color:#ffb347;
}
.catalogo-admin-type-state{
  display:flex;
  justify-content:center;
}
.catalogo-admin-type-item.is-editing{
  border-color:rgba(255,179,71,.28);
  background:rgba(255,179,71,.055);
  opacity:1;
}
@media(max-width:760px){
  .catalogo-admin-types-form{
    grid-template-columns:1fr;
  }
  .catalogo-admin-types-form-actions{
    grid-column:1;
  }
  .catalogo-admin-type-item{
    grid-template-columns:minmax(0,1fr) auto;
  }
  .catalogo-admin-type-edit-fields{
    grid-template-columns:1fr;
  }
  .catalogo-admin-type-actions{
    grid-column:1/-1;
  }
}
.catalogo-admin-price-row::before{
  content:none!important;
  display:none!important;
}


.catalogo-admin-types-list[hidden]{display:none!important}
.catalogo-admin-type-state{display:none!important}
.catalogo-admin-type-item.is-editing .catalogo-admin-type-state{display:flex!important}
.catalogo-admin-type-item.is-editing .catalogo-admin-type-delete-icon{display:none!important}
.catalogo-admin-type-delete-icon{
  width:38px;
  height:38px;
  padding:0!important;
  display:grid;
  place-items:center;
  line-height:1;
}
.catalogo-admin-type-delete-icon svg{width:18px;height:18px;pointer-events:none}
.catalogo-admin-type-actions button:disabled{opacity:.5;cursor:wait}
@media(min-width:900px){
  .catalogo-admin-types-panel{width:min(1080px,calc(100% - 72px))}
  .catalogo-admin-types-header{padding-left:36px;padding-right:36px}
  .catalogo-admin-types-content{padding-left:36px;padding-right:36px}
  .catalogo-admin-types-form{grid-template-columns:minmax(240px,.85fr) minmax(420px,1.45fr) auto}
  .catalogo-admin-type-edit-fields{grid-template-columns:minmax(220px,.8fr) minmax(420px,1.35fr)}
}


.catalogo-admin-type-item.is-inactive{
  opacity:1;
  border-color:rgba(239,68,68,.48);
  background:linear-gradient(90deg,rgba(239,68,68,.09),rgba(255,255,255,.035));
  box-shadow:inset 3px 0 0 rgba(239,68,68,.72);
}
.catalogo-admin-type-item.is-inactive .catalogo-admin-type-view strong{
  color:#fecaca;
}
.catalogo-admin-type-item.is-inactive .catalogo-admin-type-view small{
  color:rgba(254,202,202,.68);
}
.catalogo-admin-price-row.has-pending-change{
  border-color:rgba(255,179,71,.62)!important;
  background:rgba(255,179,71,.075)!important;
  box-shadow:inset 3px 0 0 rgba(255,179,71,.78);
}
.catalogo-admin-price-type select{
  transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;
}
.catalogo-admin-price-row.has-pending-change .catalogo-admin-price-type select,
.catalogo-admin-price-row.has-pending-change .catalogo-admin-price-money input{
  border-color:rgba(255,179,71,.42);
}
@media(min-width:761px){
  .catalogo-admin-types-form:not([hidden]) + .catalogo-admin-types-list{
    display:grid!important;
  }
}



.catalogo-admin-panel.relation-tab .catalogo-admin-footer{
  display:flex;
}
.catalogo-admin-drag-handle{
  flex:0 0 34px;
  width:34px;
  height:42px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.12);
  border-radius:11px;
  background:rgba(255,255,255,.055);
  color:rgba(255,255,255,.66);
  font-size:20px;
  line-height:1;
  cursor:grab;
  user-select:none;
  touch-action:none;
}
.catalogo-admin-drag-handle:active{cursor:grabbing}
.catalogo-admin-list-item.is-dragging{
  opacity:.55;
  border-color:#ffb347;
  box-shadow:0 14px 36px rgba(0,0,0,.35);
}
.catalogo-admin-list.has-order-change{
  border-color:rgba(255,190,78,.9);
  box-shadow:0 0 0 2px rgba(255,190,78,.14),0 16px 40px rgba(0,0,0,.18);
}
.catalogo-admin-price-required{
  color:rgba(255,255,255,.5);
  font-size:12px;
}
@media(max-width:650px){
  .catalogo-admin-drag-handle{flex-basis:32px;width:32px;height:38px}
}



.catalogo-admin-price-delete{display:grid!important}
.catalogo-admin-mini-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px}
.catalogo-admin-mini-actions .catalogo-admin-save{width:auto;min-width:145px}


html.catalogo-admin-sorting,
html.catalogo-admin-sorting body{
  overscroll-behavior:none;
}
.catalogo-admin-drag-handle.is-dragging{
  border-color:rgba(255,179,71,.7);
  color:#ffb347;
  background:rgba(255,179,71,.12);
}

@media(max-width:700px){
  /* Precios sin desplazamiento horizontal */
  .catalogo-admin-price-list{
    width:100%;
    overflow:visible!important;
    padding-bottom:0!important;
  }
  .catalogo-admin-price-table,
  .catalogo-admin-price-table.is-create{
    width:100%;
    min-width:0!important;
    gap:9px;
  }
  .catalogo-admin-price-table-head,
  .catalogo-admin-price-table.is-create .catalogo-admin-price-table-head{
    display:none!important;
  }
  .catalogo-admin-price-rows{
    display:grid;
    gap:9px;
  }
  .catalogo-admin-price-row,
  .catalogo-admin-price-table.is-create .catalogo-admin-price-row{
    width:100%;
    min-width:0;
    min-height:0;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) 42px!important;
    gap:9px!important;
    padding:10px!important;
    border-radius:15px;
  }
  .catalogo-admin-price-row .catalogo-admin-price-type,
  .catalogo-admin-price-table.is-create .catalogo-admin-price-row .catalogo-admin-price-type{
    grid-column:1/-1!important;
    grid-row:auto!important;
    min-width:0;
  }
  .catalogo-admin-price-row .catalogo-admin-price-money,
  .catalogo-admin-price-table.is-create .catalogo-admin-price-row .catalogo-admin-price-money{
    grid-column:1/2!important;
    grid-row:auto!important;
    min-width:0;
  }
  .catalogo-admin-price-row .catalogo-admin-price-controls,
  .catalogo-admin-price-table.is-create .catalogo-admin-price-row .catalogo-admin-price-controls{
    grid-column:2/3!important;
    grid-row:2!important;
    min-width:0;
    width:42px;
    justify-self:end;
  }
  .catalogo-admin-price-type select,
  .catalogo-admin-price-type input,
  .catalogo-admin-price-money input{
    height:42px!important;
    font-size:14px;
  }
  .catalogo-admin-price-delete{
    width:42px;
    height:42px;
  }
  .catalogo-admin-price-required{
    writing-mode:vertical-rl;
    font-size:10px;
  }

  /* Sabores y surtidos compactos: el asa queda al lado, no en una linea propia */
  .catalogo-admin-list{
    gap:8px;
  }
  .catalogo-admin-list-item[data-sortable-row]{
    display:grid!important;
    grid-template-columns:30px minmax(0,1fr)!important;
    grid-template-rows:auto auto;
    column-gap:9px!important;
    row-gap:7px!important;
    align-items:center!important;
    padding:10px!important;
    border-radius:14px;
  }
  .catalogo-admin-list-item[data-sortable-row] .catalogo-admin-drag-handle{
    grid-column:1;
    grid-row:1/3;
    align-self:stretch;
    width:30px;
    height:auto;
    min-height:58px;
    flex-basis:auto;
    border-radius:9px;
    font-size:18px;
  }
  .catalogo-admin-list-item[data-sortable-row] .catalogo-admin-item-copy{
    grid-column:2;
    grid-row:1;
    min-width:0;
  }
  .catalogo-admin-list-item[data-sortable-row] .catalogo-admin-item-title{
    gap:6px;
  }
  .catalogo-admin-list-item[data-sortable-row] .catalogo-admin-item-title strong{
    font-size:14px;
  }
  .catalogo-admin-list-item[data-sortable-row] .catalogo-admin-item-copy > span{
    font-size:11px;
    line-height:1.25;
  }
  .catalogo-admin-list-item[data-sortable-row] .catalogo-admin-chips{
    margin-top:5px;
    gap:4px;
  }
  .catalogo-admin-list-item[data-sortable-row] .catalogo-admin-chips b{
    padding:4px 7px;
    font-size:10px;
  }
  .catalogo-admin-list-item[data-sortable-row] .catalogo-admin-list-item-actions{
    grid-column:2;
    grid-row:2;
    width:100%;
    display:flex;
    flex-direction:row;
    align-items:center;
    justify-content:flex-end;
    flex-wrap:nowrap;
    gap:7px;
  }
  .catalogo-admin-list-item[data-sortable-row] .catalogo-admin-list-item-actions .catalogo-admin-secondary,
  .catalogo-admin-list-item[data-sortable-row] .catalogo-admin-list-item-actions .catalogo-admin-danger.small{
    flex:0 0 auto;
    width:auto;
    min-height:34px;
    padding:7px 10px;
    font-size:11px;
  }
  .catalogo-admin-list-item[data-sortable-row] .catalogo-admin-list-item-actions .catalogo-admin-switch{
    flex:0 0 46px!important;
  }
  .catalogo-admin-mini-form{
    padding:12px;
    margin:10px 0 12px;
  }
  .catalogo-admin-mini-actions{
    margin-top:9px;
  }
}



@media(max-width:700px){
  /* Precios: tipo, importe y eliminar en una sola linea */
  .catalogo-admin-price-row,
  .catalogo-admin-price-table.is-create .catalogo-admin-price-row{
    grid-template-columns:minmax(0,1fr) minmax(68px,82px) 38px!important;
    grid-template-rows:38px!important;
    align-items:center!important;
    gap:6px!important;
    padding:8px!important;
  }
  .catalogo-admin-price-row .catalogo-admin-price-type,
  .catalogo-admin-price-table.is-create .catalogo-admin-price-row .catalogo-admin-price-type{
    grid-column:1!important;
    grid-row:1!important;
  }
  .catalogo-admin-price-row .catalogo-admin-price-money,
  .catalogo-admin-price-table.is-create .catalogo-admin-price-row .catalogo-admin-price-money{
    grid-column:2!important;
    grid-row:1!important;
  }
  .catalogo-admin-price-row .catalogo-admin-price-controls,
  .catalogo-admin-price-table.is-create .catalogo-admin-price-row .catalogo-admin-price-controls{
    grid-column:3!important;
    grid-row:1!important;
    width:38px!important;
  }
  .catalogo-admin-price-type select,
  .catalogo-admin-price-type input,
  .catalogo-admin-price-money input{
    width:100%!important;
    min-width:0!important;
    height:38px!important;
    padding:7px 8px!important;
    font-size:12px!important;
  }
  .catalogo-admin-price-type select{
    padding-right:25px!important;
    text-overflow:ellipsis;
  }
  .catalogo-admin-price-delete{
    width:38px!important;
    height:38px!important;
  }

  /* Sabores: linea 1 informacion, linea 2 acciones */
  .catalogo-admin-list-item[data-admin-sabor-row][data-sortable-row]{
    grid-template-columns:28px minmax(0,1fr)!important;
    grid-template-rows:34px 36px!important;
    column-gap:7px!important;
    row-gap:5px!important;
    padding:8px!important;
  }
  .catalogo-admin-list-item[data-admin-sabor-row] .catalogo-admin-drag-handle{
    grid-row:1/3!important;
    width:28px!important;
    min-height:0!important;
  }
  .catalogo-admin-list-item[data-admin-sabor-row] .catalogo-admin-item-copy{
    display:flex!important;
    align-items:center!important;
    gap:7px!important;
    overflow:hidden;
  }
  .catalogo-admin-list-item[data-admin-sabor-row] .catalogo-admin-item-title{
    flex:0 1 auto;
    min-width:0;
    white-space:nowrap;
  }
  .catalogo-admin-list-item[data-admin-sabor-row] .catalogo-admin-item-title strong,
  .catalogo-admin-list-item[data-admin-sabor-row] .catalogo-admin-item-copy > span{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .catalogo-admin-list-item[data-admin-sabor-row] .catalogo-admin-item-copy > span{
    flex:1 1 auto;
    margin:0!important;
    text-align:right;
  }
  .catalogo-admin-list-item[data-admin-sabor-row] .catalogo-admin-list-item-actions{
    min-height:36px;
  }

  /* Surtidos: linea 1 titulo/descripcion, linea 2 sabores, linea 3 acciones */
  .catalogo-admin-list-item[data-admin-surtido-row][data-sortable-row]{
    grid-template-columns:28px minmax(0,1fr)!important;
    grid-template-rows:auto auto 36px!important;
    column-gap:7px!important;
    row-gap:5px!important;
    padding:8px!important;
  }
  .catalogo-admin-list-item[data-admin-surtido-row] .catalogo-admin-drag-handle{
    grid-row:1/4!important;
    width:28px!important;
    min-height:0!important;
  }
  .catalogo-admin-list-item[data-admin-surtido-row] .catalogo-admin-item-copy{
    grid-row:1/3!important;
    display:grid!important;
    grid-template-columns:minmax(0,auto) minmax(0,1fr);
    grid-template-rows:auto auto;
    align-items:center;
    gap:4px 7px!important;
    min-width:0;
  }
  .catalogo-admin-list-item[data-admin-surtido-row] .catalogo-admin-item-title{
    grid-column:1;
    grid-row:1;
    min-width:0;
    white-space:nowrap;
  }
  .catalogo-admin-list-item[data-admin-surtido-row] .catalogo-admin-item-copy > span{
    grid-column:2;
    grid-row:1;
    margin:0!important;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    text-align:right;
  }
  .catalogo-admin-list-item[data-admin-surtido-row] .catalogo-admin-chips{
    grid-column:1/-1;
    grid-row:2;
    margin-top:0!important;
    display:flex;
    flex-wrap:nowrap;
    overflow:hidden;
    min-width:0;
  }
  .catalogo-admin-list-item[data-admin-surtido-row] .catalogo-admin-chips b,
  .catalogo-admin-list-item[data-admin-surtido-row] .catalogo-admin-chips span{
    flex:0 1 auto;
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .catalogo-admin-list-item[data-admin-surtido-row] .catalogo-admin-list-item-actions{
    grid-row:3!important;
    min-height:36px;
  }

  .catalogo-admin-list-item[data-sortable-row] .catalogo-admin-list-item-actions .catalogo-admin-secondary,
  .catalogo-admin-list-item[data-sortable-row] .catalogo-admin-list-item-actions .catalogo-admin-danger.small{
    min-height:32px!important;
    padding:6px 9px!important;
  }
}


.catalogo-admin-drag-handle{
  cursor:grab;
  touch-action:none;
  user-select:none;
  transition:transform .16s ease, border-color .16s ease, background .16s ease, box-shadow .16s ease;
}
.catalogo-admin-drag-handle:hover{
  border-color:#fbbf24;
  background:rgba(251,191,36,.10);
}
.catalogo-admin-drag-handle:active,
.catalogo-admin-sorting .catalogo-admin-drag-handle{
  cursor:grabbing;
}
.catalogo-admin-sorting,
.catalogo-admin-sorting *{
  cursor:grabbing!important;
}
.catalogo-admin-list-item.is-drag-source{
  display:none!important;
}
.catalogo-admin-sort-placeholder{
  box-sizing:border-box;
  width:100%;
  min-height:54px;
  border:2px dashed rgba(251,191,36,.9);
  border-radius:14px;
  background:linear-gradient(135deg, rgba(251,191,36,.13), rgba(245,158,11,.05));
  box-shadow:inset 0 0 0 1px rgba(251,191,36,.08);
  animation:catalogoAdminPlaceholderPulse .9s ease-in-out infinite alternate;
}
.catalogo-admin-drag-ghost{
  position:fixed!important;
  z-index:100000!important;
  margin:0!important;
  pointer-events:none!important;
  opacity:.96;
  transform:scale(1.015) rotate(.25deg);
  transform-origin:center;
  border-color:#fbbf24!important;
  background:#17120b!important;
  box-shadow:0 22px 52px rgba(0,0,0,.52), 0 0 0 2px rgba(251,191,36,.32)!important;
  transition:none!important;
}
.catalogo-admin-drag-ghost .catalogo-admin-drag-handle{
  border-color:#fbbf24!important;
  background:rgba(251,191,36,.16)!important;
  transform:scale(1.04);
}
@keyframes catalogoAdminPlaceholderPulse{
  from{opacity:.68}
  to{opacity:1}
}
@media (prefers-reduced-motion:reduce){
  .catalogo-admin-sort-placeholder{animation:none}
  .catalogo-admin-drag-ghost{transform:none}
}

.catalogo-admin-switch-field{display:flex!important;align-items:center;gap:12px;justify-content:space-between}.catalogo-admin-switch-field input{position:absolute;opacity:0;pointer-events:none}.catalogo-admin-switch{width:46px;height:26px;border-radius:999px;background:#555;position:relative;transition:.2s}.catalogo-admin-switch:before{content:"";position:absolute;width:20px;height:20px;left:3px;top:3px;border-radius:50%;background:#fff;transition:.2s}.catalogo-admin-switch-field input:checked+.catalogo-admin-switch{background:#24a866}.catalogo-admin-switch-field input:checked+.catalogo-admin-switch:before{transform:translateX(20px)}

.catalogo-admin-product-id-field input{font-weight:700;letter-spacing:.03em;cursor:default;opacity:.9;}



.catalogo-admin-drawer{z-index:6500}
.catalogo-admin-types-modal{z-index:6600}
.catalogo-admin-panel{overscroll-behavior:contain}
.catalogo-admin-switch-field{position:relative;min-height:54px}
.catalogo-admin-switch-field input{top:50%;right:0;width:46px;height:26px;transform:translateY(-50%);margin:0}
body.catalogo-admin-editor-open .catalogo-public-header,
body.catalogo-admin-editor-open .worker-identity,
body.catalogo-admin-editor-open .global-admin-menu-trigger{pointer-events:none}




.combo-admin-modal{position:fixed;inset:0;z-index:1600;display:none}.combo-admin-modal.open{display:block}.combo-admin-overlay{position:absolute;inset:0;background:rgba(0,0,0,.78);backdrop-filter:blur(5px);opacity:0;transition:opacity .26s}.combo-admin-panel{position:absolute;right:0;top:0;height:100%;width:min(920px,100%);background:#111;color:#fff;overflow:auto;box-shadow:-18px 0 60px rgba(0,0,0,.45);transform:translateX(100%);transition:transform .26s ease}.combo-admin-modal.visible .combo-admin-overlay{opacity:1}.combo-admin-modal.visible .combo-admin-panel{transform:translateX(0)}body.combo-admin-open{overflow:hidden}.cart-floating.combo-admin-hidden{display:none!important}.combo-admin-header{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;gap:20px;padding:24px 28px;background:#171717;border-bottom:1px solid rgba(255,255,255,.1)}.combo-admin-header span{color:#ffb347;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.combo-admin-header h2{margin:5px 0}.combo-admin-header p{margin:0;color:#aaa}.combo-admin-header button{width:42px;height:42px;border:0;border-radius:50%;background:#292929;color:#fff;font-size:28px;cursor:pointer}.combo-admin-form{padding:0 28px 28px;display:grid;gap:20px}.combo-admin-tabs{position:sticky;top:111px;z-index:4;display:flex;gap:8px;padding:16px 0;background:#111;border-bottom:1px solid #292929;overflow:auto}.combo-admin-tabs button{white-space:nowrap;border:1px solid #343434;border-radius:999px;padding:10px 16px;background:#1c1c1c;color:#ccc;font-weight:800;cursor:pointer}.combo-admin-tabs button.active{background:#ffb347;color:#111;border-color:#ffb347}.combo-admin-tab{display:none;gap:18px}.combo-admin-tab.active{display:grid}.combo-admin-form label{display:grid;gap:8px;font-weight:700}.combo-admin-form input,.combo-admin-form select,.combo-admin-form textarea{width:100%;box-sizing:border-box;border:1px solid #3b3b3b;border-radius:12px;background:#1d1d1d;color:#fff;padding:13px;font:inherit}.combo-admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.combo-admin-saving{padding:18px;border-radius:14px;background:#1a241c;color:#b9e6c0}.combo-admin-items-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.combo-admin-items-head h3{margin:0 0 5px}.combo-admin-items-head p{margin:0;color:#aaa}.combo-admin-items-head button,.combo-admin-footer button{border:0;border-radius:12px;padding:12px 16px;font-weight:800;cursor:pointer;background:#ffb347;color:#111}.combo-admin-items-columns{display:grid;grid-template-columns:1fr 1.25fr 1.25fr .85fr 86px 44px;gap:10px;padding:0 14px;color:#b8b8b8;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.combo-admin-items{display:grid;gap:12px}.combo-admin-item{display:grid;grid-template-columns:1fr 1.25fr 1.25fr .85fr 86px 44px;gap:10px;align-items:end;padding:14px;border:1px solid #333;border-radius:16px;background:#181818}.combo-admin-item label{font-size:12px}.combo-admin-mobile-label{display:none}.combo-admin-item-remove{height:44px;border:0;border-radius:10px;background:#472020;color:#fff;font-size:17px;cursor:pointer}.combo-admin-image-layout{display:grid;grid-template-columns:minmax(240px,.85fr) 1.15fr;gap:22px;align-items:start}.combo-admin-image-preview{min-height:280px;border:1px dashed #454545;border-radius:18px;background:#191919;display:grid;place-items:center;overflow:hidden;color:#888}.combo-admin-image-preview img{width:100%;height:100%;max-height:380px;object-fit:contain}.combo-admin-file small{color:#aaa;font-weight:400}.combo-admin-footer{position:sticky;bottom:0;z-index:4;display:flex;justify-content:flex-end;gap:12px;padding:18px 0;background:linear-gradient(transparent,#111 25%)}.combo-admin-footer .secondary{background:#2c2c2c;color:#fff}.combo-admin-actions{position:absolute;right:12px;top:12px;z-index:5;display:flex;gap:7px;opacity:0;visibility:hidden;transform:translateY(-5px);transition:.2s}.combo-card:hover .combo-admin-actions,.combo-card:focus-within .combo-admin-actions{opacity:1;visibility:visible;transform:none}.combo-admin-action{width:38px;height:38px;border:0;border-radius:11px;background:rgba(17,17,17,.92);color:#fff;cursor:pointer;font-size:16px;box-shadow:0 4px 16px rgba(0,0,0,.3)}.combo-admin-action:hover{background:#ffb347;color:#111}.combo-card.combo-disabled{opacity:.62;border-style:dashed}.combo-disabled-badge{position:absolute;left:12px;top:12px;z-index:4;background:#b23a3a;color:#fff;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800}.combo-admin-mobile-actions{display:none;gap:8px;margin-top:12px}.combo-admin-mobile-actions button{flex:1;border:0;border-radius:10px;padding:10px;font-weight:700;background:#292929;color:#fff}.combo-admin-mobile-actions .danger{background:#562323}@media(max-width:760px){.combo-admin-grid,.combo-admin-image-layout{grid-template-columns:1fr}.combo-admin-items-columns{display:none}.combo-admin-mobile-label{display:block;color:#b8b8b8;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.combo-admin-form{padding:0 20px 20px}.combo-admin-tabs{top:103px}.combo-admin-item{grid-template-columns:1fr 1fr}.combo-admin-item .combo-item-product,.combo-admin-item .combo-item-option{grid-column:1/-1}.combo-admin-actions{display:none}.combo-admin-mobile-actions{display:flex}.combo-admin-header{padding:20px}.combo-admin-items-head{align-items:flex-start;flex-direction:column}.combo-admin-items-head button{width:100%}}


.catalog-order-modal{position:fixed;inset:0;z-index:1300;display:none}.catalog-order-modal.open{display:block}.catalog-order-overlay{position:absolute;inset:0;background:rgba(0,0,0,.64);backdrop-filter:blur(5px);opacity:0;transition:.24s}.catalog-order-panel{position:absolute;top:0;right:0;width:min(760px,100%);height:100%;background:#151515;color:#fff;transform:translateX(100%);transition:.24s;display:flex;flex-direction:column;box-shadow:-18px 0 45px rgba(0,0,0,.4)}.catalog-order-modal.visible .catalog-order-overlay{opacity:1}.catalog-order-modal.visible .catalog-order-panel{transform:none}.catalog-order-header,.catalog-order-footer{padding:20px 24px;border-bottom:1px solid rgba(255,255,255,.1);display:flex;align-items:center;justify-content:space-between;gap:16px}.catalog-order-header span{font-size:.78rem;color:#f7b733;text-transform:uppercase}.catalog-order-header h2{margin:3px 0}.catalog-order-header p{margin:0;color:#aaa}.catalog-order-header>button{background:none;border:0;color:#fff;font-size:2rem}.catalog-order-tabs{display:flex;gap:8px;padding:14px 24px;overflow:auto;border-bottom:1px solid rgba(255,255,255,.08)}.catalog-order-tabs button{border:1px solid rgba(255,255,255,.14);background:#202020;color:#ddd;border-radius:999px;padding:9px 15px;white-space:nowrap}.catalog-order-tabs button.active{background:#f7b733;color:#171717;border-color:#f7b733;font-weight:700}.catalog-order-body{padding:20px 24px;overflow:auto;flex:1}.catalog-order-pane{display:none}.catalog-order-pane.active{display:block}.catalog-order-help{color:#aaa;margin-top:0}.catalog-order-list{display:grid;gap:10px}.catalog-order-item{display:grid;grid-template-columns:34px 52px 1fr auto auto;align-items:center;gap:12px;background:#202020;border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:10px 12px;cursor:grab}.catalog-order-item.dragging{opacity:.45}.catalog-order-handle{font-size:1.2rem;color:#888}.catalog-order-thumb{width:48px;height:48px;border-radius:10px;background:#111;display:grid;place-items:center;overflow:hidden}.catalog-order-thumb img{width:100%;height:100%;object-fit:contain}.catalog-order-item em{font-size:.75rem;color:#f59e0b}.catalog-order-mobile-actions{display:none;gap:6px}.catalog-order-mobile-actions button{width:36px;height:36px;border:0;border-radius:9px;background:#333;color:#fff}.catalog-order-footer{border-top:1px solid rgba(255,255,255,.1);border-bottom:0;justify-content:flex-end}.catalog-order-footer button{border:0;border-radius:10px;padding:11px 18px;font-weight:700}.catalog-order-footer #catalog-order-save{background:#f7b733}.catalog-order-footer .secondary{background:#333;color:#fff}@media(max-width:700px){.catalog-order-item{grid-template-columns:26px 44px 1fr auto}.catalog-order-item em{display:none}.catalog-order-mobile-actions{display:flex}.catalog-order-handle{display:none}.catalog-order-header,.catalog-order-footer,.catalog-order-body{padding-left:16px;padding-right:16px}.catalog-order-tabs{padding-left:16px;padding-right:16px}}


.cliente-logged{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
@media(max-width:640px){.cliente-logged{gap:7px}}


@media(max-width:640px){
}



.modal-producto{z-index:12000!important}
.catalogo-admin-panel-shell,.catalogo-admin-disabled-modal,.catalogo-admin-types-modal,.combo-admin-modal,.catalog-order-modal{z-index:16000!important}
.catalogo-admin-menu{z-index:17000!important}
@media(max-width:640px){
}
/* El acceso flotante al carrito se conserva sobre el detalle del producto, segun el flujo acordado. */
body.product-detail-open .cart-floating{z-index:13000!important}

/* Etapa 141: acciones de eliminación visibles aunque estén bloqueadas. */
.catalogo-admin-delete-action.is-blocked{
  opacity:.42;
  filter:grayscale(.8);
  cursor:help;
  border-color:rgba(255,255,255,.16) !important;
  background:rgba(255,255,255,.06) !important;
  color:rgba(255,255,255,.72) !important;
}
.catalogo-admin-delete-action.is-blocked:hover,
.catalogo-admin-delete-action.is-blocked:focus-visible{
  opacity:.68;
  transform:none !important;
  border-color:rgba(255,179,71,.45) !important;
  color:#ffd27a !important;
}

/* Etapa 142: tarjetas de escritorio mas compactas para visualizarse completas en una pantalla. */
@media (min-width:1101px) and (min-height:700px){
  .catalogo-grid{
    gap:36px;
    padding:28px 80px 38px;
    align-items:stretch;
  }
  .catalogo-card{
    display:flex;
    flex-direction:column;
    min-height:0;
  }
  .catalogo-image{
    height:250px;
    padding:22px;
    flex:0 0 auto;
  }
  .catalogo-info{
    display:flex;
    flex:1 1 auto;
    flex-direction:column;
    padding:24px 30px 18px;
  }
  .catalogo-info h3{
    margin:0 0 6px;
    font-size:30px;
    line-height:1.08;
  }
  .catalogo-info > p:not(.combo-description){
    display:-webkit-box;
    min-height:35px;
    margin:0 0 14px;
    overflow:hidden;
    line-height:1.18;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
  }
  .catalogo-price{
    margin:0 0 16px;
    gap:3px;
  }
  .catalogo-price > strong{
    font-size:27px;
  }
  .catalogo-button,
  .combo-button{
    min-height:48px;
    margin-top:auto;
    padding:13px 16px;
  }
  .combo-card .catalogo-info{
    padding:20px 24px 18px;
    gap:6px;
  }
  .combo-card .combo-description{
    max-height:38px;
    line-height:1.25;
  }
  .combo-card .combo-prices{
    margin-bottom:7px;
  }
}

/* En portatiles con poca altura se compacta un poco mas sin reducir la legibilidad. */
@media (min-width:1101px) and (max-height:760px){
  .catalogo-grid{padding-top:20px;padding-bottom:26px}
  .catalogo-image{height:238px;padding:18px}
  .catalogo-info{padding-top:20px;padding-bottom:16px}
  .catalogo-info h3{font-size:29px;margin-bottom:8px}
  .catalogo-info > p:not(.combo-description){margin-bottom:11px}
  .catalogo-price{margin-bottom:13px}
  .catalogo-button,.combo-button{min-height:46px;padding:12px 15px}
}

/* =========================================================
   ETAPA 143 - COMBOS COMPACTOS Y ALINEADOS EN ESCRITORIO
   Mantiene completa la informacion en una sola pantalla.
   ========================================================= */
@media (min-width:1101px){
  .combos-grid{
    padding-top:30px;
    padding-bottom:32px;
    align-items:stretch;
  }

  .combo-card{
    display:flex;
    min-width:0;
    flex-direction:column;
    height:100%;
  }

  .combo-card .combo-image{
    flex:0 0 230px;
    height:230px;
    padding:20px;
  }

  .combo-card .combo-status{
    right:14px;
    bottom:14px;
    min-width:68px;
    margin:0;
    padding:7px 11px;
    text-align:center;
  }

  .combo-card .catalogo-info{
    display:flex;
    flex:1 1 auto;
    flex-direction:column;
    gap:6px;
    padding:18px 24px 16px;
  }

  .combo-card .catalogo-info h3{
    display:-webkit-box;
    min-height:62px;
    max-height:94px;
    margin:0;
    overflow:hidden;
    font-size:29px;
    line-height:1.08;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;
  }

  .combo-card .combo-description{
    display:-webkit-box;
    min-height:38px;
    max-height:38px;
    margin:0;
    overflow:hidden;
    line-height:1.25;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
  }

  .combo-card.expanded .combo-description{
    display:block;
    min-height:38px;
    max-height:none;
    overflow:visible;
    -webkit-line-clamp:unset;
  }

  .combo-card .combo-more{
    min-height:20px;
    margin:0;
    line-height:20px;
  }

  .combo-card .catalogo-price{
    min-height:70px;
    margin:0;
  }

  .combo-card .combo-prices{
    justify-content:flex-end;
    min-height:70px;
    gap:1px;
    margin:0;
  }

  .combo-card .combo-regular{
    line-height:1.15;
  }

  .combo-card .combo-final{
    font-size:27px;
    line-height:1.05;
  }

  .combo-card .combo-save{
    line-height:1.15;
  }

  .combo-card .combo-button{
    min-height:48px;
    margin-top:auto;
    padding:12px 15px;
  }
}

@media (min-width:1101px) and (max-height:760px){
  .combos-grid{
    padding-top:22px;
    padding-bottom:26px;
  }
  .combo-card .combo-image{
    flex-basis:218px;
    height:218px;
    padding:17px;
  }
  .combo-card .catalogo-info{
    gap:5px;
    padding:15px 22px 14px;
  }
  .combo-card .catalogo-info h3{
    min-height:60px;
    max-height:88px;
    font-size:28px;
  }
  .combo-card .combo-description{
    min-height:34px;
    max-height:34px;
  }
  .combo-card.expanded .combo-description{
    display:block;
    min-height:34px;
    max-height:none;
    overflow:visible;
    -webkit-line-clamp:unset;
  }
  .combo-card .catalogo-price,
  .combo-card .combo-prices{
    min-height:65px;
  }
  .combo-card .combo-button{
    min-height:46px;
    padding:11px 14px;
  }
}


/* =========================================================
   ETAPA 145 - COMBOS COMPACTOS Y DESCRIPCION EXPANDIBLE
   ========================================================= */
@media (min-width:1101px){
  .combo-card .catalogo-info{
    gap:5px;
  }

  .combo-card .catalogo-info h3{
    min-height:2.16em;
    max-height:2.16em;
    margin:0 0 7px;
    -webkit-line-clamp:2;
  }

  .combo-card .combo-description{
    display:-webkit-box;
    min-height:3.75em;
    max-height:3.75em;
    margin:0;
    overflow:hidden;
    white-space:pre-line;
    line-height:1.25;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:3;
    transition:max-height .28s ease, opacity .2s ease;
  }

  .combo-card.expanded .combo-description{
    display:block;
    min-height:0;
    max-height:520px;
    overflow:hidden;
    white-space:pre-line;
    line-height:1.28;
    -webkit-line-clamp:unset;
  }

  .combo-card .combo-more{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    min-height:28px;
    width:max-content;
    margin:2px 0 5px;
    padding:4px 10px;
    border:1px solid rgba(255,179,71,.48);
    border-radius:999px;
    background:rgba(255,179,71,.09);
    color:#ffb347;
    line-height:1;
    transition:background .2s ease,border-color .2s ease,transform .2s ease,color .2s ease;
  }

  .combo-card .combo-more::after{
    content:'↓';
    font-size:.88em;
    transition:transform .22s ease;
  }

  .combo-card .combo-more:hover,
  .combo-card .combo-more:focus-visible{
    border-color:#ffb347;
    background:rgba(255,179,71,.18);
    color:#ffd27a;
    transform:translateY(-1px);
    outline:none;
  }

  .combo-card.expanded .combo-more{
    background:rgba(255,179,71,.18);
  }

  .combo-card.expanded .combo-more::after{
    content:'↑';
    transform:translateY(-1px);
  }
}

@media (min-width:1101px) and (max-height:760px){
  .combo-card .catalogo-info h3{
    min-height:2.16em;
    max-height:2.16em;
    margin-bottom:5px;
  }

  .combo-card .combo-description{
    min-height:3.55em;
    max-height:3.55em;
    line-height:1.18;
  }

  .combo-card.expanded .combo-description{
    min-height:0;
    max-height:520px;
    line-height:1.23;
  }

  .combo-card .combo-more{
    min-height:26px;
    margin-bottom:3px;
    padding:3px 9px;
  }
}


/* =========================================================
   ETAPA 146 - REPARTO ADAPTATIVO TITULO / DESCRIPCION COMBOS
   ========================================================= */
@media (min-width:1101px){
  /* La suma visual de titulo + descripcion se mantiene estable,
     pero el espacio se reparte segun las lineas reales del titulo. */
  .combo-card .catalogo-info h3{
    min-height:1.08em;
    max-height:2.16em;
    margin:0 0 5px;
    -webkit-line-clamp:2;
  }

  .combo-card[data-title-lines="1"] .catalogo-info h3{
    min-height:1.08em;
    max-height:1.08em;
  }

  .combo-card[data-title-lines="2"] .catalogo-info h3,
  .combo-card:not([data-title-lines]) .catalogo-info h3{
    min-height:2.16em;
    max-height:2.16em;
  }

  .combo-card .combo-description{
    --combo-desc-lines:4;
    min-height:calc(var(--combo-desc-lines) * 1.25em);
    max-height:calc(var(--combo-desc-lines) * 1.25em);
    -webkit-line-clamp:var(--combo-desc-lines);
  }

  /* Un titulo corto libera una linea extra para los componentes. */
  .combo-card[data-title-lines="1"] .combo-description{
    --combo-desc-lines:5;
  }

  /* Un titulo de dos lineas conserva cuatro lineas de descripcion. */
  .combo-card[data-title-lines="2"] .combo-description{
    --combo-desc-lines:4;
  }

  .combo-card.expanded .combo-description{
    min-height:0;
    max-height:520px;
    -webkit-line-clamp:unset;
  }

  .combo-card .combo-more{
    align-self:flex-start;
    margin-top:1px;
  }
}

@media (min-width:1101px) and (max-height:760px){
  .combo-card .combo-description{
    line-height:1.18;
    min-height:calc(var(--combo-desc-lines) * 1.18em);
    max-height:calc(var(--combo-desc-lines) * 1.18em);
  }

  .combo-card.expanded .combo-description{
    min-height:0;
    max-height:520px;
  }
}

/* =========================================================
   ETAPA 147 - VER MAS SOLO CUANDO EXISTE TEXTO RECORTADO
   ========================================================= */
.combo-card .combo-more.is-unneeded{
  visibility:hidden;
  pointer-events:none;
  user-select:none;
}

/* =========================================================
   ETAPA 148 - DENSIDAD TITULO / DESCRIPCION DE COMBOS
   ========================================================= */
@media (min-width:1101px){
  /* El espacio se controla con un margen corto, como en los cards de productos.
     La altura adaptativa de la descripcion y Ver mas se conserva intacta. */
  .combo-card .catalogo-info h3{
    margin-bottom:2px;
  }

  .combo-card .combo-description{
    margin-top:0;
  }
}

@media (min-width:1101px) and (max-height:760px){
  .combo-card .catalogo-info h3{
    margin-bottom:1px;
  }
}


/* =========================================================
   ETAPA 151 - CANTIDAD MINIMA DEL CARRITO
   ========================================================= */
.cart-controls .cart-minus:disabled,
.cart-controls .cart-minus.is-minimum{
  opacity:.38;
  cursor:not-allowed;
  filter:saturate(.45);
  transform:none;
  box-shadow:none;
}

.cart-controls .cart-minus:disabled:hover,
.cart-controls .cart-minus.is-minimum:hover{
  background:inherit;
  color:inherit;
  transform:none;
}


/* Etapa 157: acciones administrativas compactas en cards móviles */
.catalogo-admin-more-trigger{
  display:none;
  border:0;
  cursor:pointer;
}

@media(max-width:760px){
  .catalogo-card,
  .combo-card{
    position:relative;
    overflow:visible;
  }

  .catalogo-card > .catalogo-admin-actions,
  .combo-card .combo-admin-actions{
    position:absolute !important;
    top:10px !important;
    right:10px !important;
    left:auto !important;
    bottom:auto !important;
    width:42px !important;
    height:42px !important;
    display:block !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:13px !important;
    background:transparent !important;
    box-shadow:none !important;
    backdrop-filter:none !important;
    opacity:1 !important;
    visibility:visible !important;
    transform:none !important;
    pointer-events:auto !important;
    z-index:35 !important;
  }

  .catalogo-admin-more-trigger{
    position:relative;
    z-index:3;
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    padding:0;
    border:1px solid rgba(255,255,255,.16);
    border-radius:13px;
    background:rgba(13,13,13,.9);
    color:#fff;
    font-size:27px;
    line-height:1;
    font-weight:800;
    box-shadow:0 10px 28px rgba(0,0,0,.38);
    backdrop-filter:blur(10px);
    transition:background .18s ease, color .18s ease, transform .18s ease;
  }

  .catalogo-admin-actions.is-open .catalogo-admin-more-trigger,
  .combo-admin-actions.is-open .catalogo-admin-more-trigger{
    background:#ffb347;
    color:#111;
    transform:rotate(90deg);
  }

  .catalogo-card > .catalogo-admin-actions .catalogo-admin-card-icon,
  .combo-card .combo-admin-actions .combo-admin-action{
    position:absolute !important;
    right:0 !important;
    width:154px !important;
    min-width:154px !important;
    max-width:154px !important;
    height:42px !important;
    min-height:42px !important;
    display:none !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:10px !important;
    padding:0 13px !important;
    margin:0 !important;
    border:1px solid rgba(255,255,255,.1) !important;
    border-radius:12px !important;
    background:rgba(18,18,18,.97) !important;
    color:#fff !important;
    font-size:13px !important;
    font-weight:850 !important;
    line-height:1 !important;
    box-shadow:0 12px 30px rgba(0,0,0,.42) !important;
    backdrop-filter:blur(12px);
    opacity:0;
    transform:translateY(-5px) scale(.97);
  }

  .catalogo-card > .catalogo-admin-actions.is-open .catalogo-admin-card-icon,
  .combo-card .combo-admin-actions.is-open .combo-admin-action{
    display:flex !important;
    opacity:1;
    transform:none;
    animation:hm-card-admin-pop .16s ease both;
  }

  .catalogo-card > .catalogo-admin-actions .catalogo-admin-card-icon:nth-of-type(2),
  .combo-card .combo-admin-actions .combo-admin-action:nth-of-type(2){top:48px !important;}
  .catalogo-card > .catalogo-admin-actions .catalogo-admin-card-icon:nth-of-type(3),
  .combo-card .combo-admin-actions .combo-admin-action:nth-of-type(3){top:94px !important;}
  .catalogo-card > .catalogo-admin-actions .catalogo-admin-card-icon:nth-of-type(4),
  .combo-card .combo-admin-actions .combo-admin-action:nth-of-type(4){top:140px !important;}

  .catalogo-card > .catalogo-admin-actions .catalogo-admin-card-icon.edit,
  .combo-card .combo-admin-actions .combo-admin-action:first-of-type{
    color:#ffd27a !important;
  }

  .catalogo-card > .catalogo-admin-actions .catalogo-admin-card-icon.disable{
    color:#fcd34d !important;
  }

  .catalogo-card > .catalogo-admin-actions .catalogo-admin-card-icon.delete,
  .combo-card .combo-admin-actions .combo-admin-action:last-of-type{
    color:#fca5a5 !important;
  }

  .catalogo-admin-action-text{
    position:static !important;
    width:auto !important;
    height:auto !important;
    overflow:visible !important;
    clip:auto !important;
    white-space:nowrap !important;
  }

  .combo-card .combo-admin-actions .combo-admin-action::after{
    margin-left:2px;
  }
  .combo-card .combo-admin-actions .combo-admin-action[data-combo-edit]::after{content:"Editar";}
  .combo-card .combo-admin-actions .combo-admin-action[data-combo-state][data-active="0"]::after{content:"Desactivar";}
  .combo-card .combo-admin-actions .combo-admin-action[data-combo-state][data-active="1"]::after{content:"Activar";}
  .combo-card .combo-admin-actions .combo-admin-action[data-combo-delete]::after{content:"Eliminar";}

  .combo-admin-mobile-actions{
    display:none !important;
  }
}

@keyframes hm-card-admin-pop{
  from{opacity:0;transform:translateY(-5px) scale(.97)}
  to{opacity:1;transform:none}
}

/* Etapa 158: refinamiento del menú administrativo y cards en móviles */
@media (max-width:760px){
  /* El card conserva el menú fuera del recorte, mientras sus dos bloques
     forman una única silueta redondeada. */
  .catalogo-grid .catalogo-card,
  .combos-grid .combo-card{
    border-radius:20px !important;
    border:1px solid rgba(255,179,71,.24) !important;
    background:#181818 !important;
    box-shadow:0 12px 28px rgba(0,0,0,.22) !important;
    overflow:visible !important;
  }

  .catalogo-grid .catalogo-card > .catalogo-image,
  .combos-grid .combo-card > .catalogo-image{
    border-radius:19px 19px 0 0 !important;
    overflow:hidden !important;
  }

  .catalogo-grid .catalogo-card > .catalogo-info,
  .combos-grid .combo-card > .catalogo-info{
    border-radius:0 0 19px 19px !important;
    overflow:hidden !important;
  }

  .catalogo-card > .catalogo-admin-actions,
  .combo-card .combo-admin-actions{
    top:8px !important;
    right:8px !important;
    width:34px !important;
    height:34px !important;
    border-radius:11px !important;
  }

  .catalogo-admin-more-trigger{
    width:34px !important;
    height:34px !important;
    border-radius:11px !important;
    border:1px solid rgba(255,255,255,.14) !important;
    background:rgba(16,16,16,.9) !important;
    color:#f5f5f5 !important;
    font-size:22px !important;
    box-shadow:0 7px 20px rgba(0,0,0,.34) !important;
  }

  .catalogo-admin-actions.is-open .catalogo-admin-more-trigger,
  .combo-admin-actions.is-open .catalogo-admin-more-trigger{
    background:#242424 !important;
    color:#fff !important;
    border-color:rgba(255,179,71,.5) !important;
    transform:none !important;
  }

  .catalogo-card > .catalogo-admin-actions .catalogo-admin-card-icon,
  .combo-card .combo-admin-actions .combo-admin-action{
    right:0 !important;
    width:142px !important;
    min-width:142px !important;
    max-width:142px !important;
    height:38px !important;
    min-height:38px !important;
    gap:9px !important;
    padding:0 12px !important;
    border-radius:10px !important;
    border:1px solid rgba(255,255,255,.11) !important;
    background:#1b1b1b !important;
    background-image:none !important;
    color:#f3f3f3 !important;
    box-shadow:0 10px 26px rgba(0,0,0,.42) !important;
    font-size:12.5px !important;
  }

  .catalogo-card > .catalogo-admin-actions .catalogo-admin-card-icon:hover,
  .catalogo-card > .catalogo-admin-actions .catalogo-admin-card-icon:focus-visible,
  .combo-card .combo-admin-actions .combo-admin-action:hover,
  .combo-card .combo-admin-actions .combo-admin-action:focus-visible{
    background:#282828 !important;
    color:#fff !important;
    border-color:rgba(255,179,71,.38) !important;
    transform:none !important;
  }

  .catalogo-card > .catalogo-admin-actions .catalogo-admin-card-icon.edit,
  .catalogo-card > .catalogo-admin-actions .catalogo-admin-card-icon.disable,
  .combo-card .combo-admin-actions .combo-admin-action:not(:last-of-type){
    color:#f3f3f3 !important;
  }

  .catalogo-card > .catalogo-admin-actions .catalogo-admin-card-icon.delete,
  .combo-card .combo-admin-actions .combo-admin-action:last-of-type{
    color:#ff8f8f !important;
    border-color:rgba(255,82,82,.22) !important;
  }

  .catalogo-card > .catalogo-admin-actions .catalogo-admin-card-icon:nth-of-type(2),
  .combo-card .combo-admin-actions .combo-admin-action:nth-of-type(2){top:40px !important;}
  .catalogo-card > .catalogo-admin-actions .catalogo-admin-card-icon:nth-of-type(3),
  .combo-card .combo-admin-actions .combo-admin-action:nth-of-type(3){top:82px !important;}
  .catalogo-card > .catalogo-admin-actions .catalogo-admin-card-icon:nth-of-type(4),
  .combo-card .combo-admin-actions .combo-admin-action:nth-of-type(4){top:124px !important;}
}

/* Etapa 159: unificación definitiva del menú contextual móvil */
@media (max-width:760px){
  .catalogo-grid .catalogo-card > .catalogo-admin-actions .catalogo-admin-card-icon,
  .combos-grid .combo-card .combo-admin-actions .combo-admin-action{
    background:#1b1b1b !important;
    background-color:#1b1b1b !important;
    background-image:none !important;
    filter:none !important;
  }
  .catalogo-grid .catalogo-card > .catalogo-admin-actions .catalogo-admin-card-icon:hover,
  .catalogo-grid .catalogo-card > .catalogo-admin-actions .catalogo-admin-card-icon:focus-visible,
  .combos-grid .combo-card .combo-admin-actions .combo-admin-action:hover,
  .combos-grid .combo-card .combo-admin-actions .combo-admin-action:focus-visible{background:#282828 !important;background-image:none !important;}
}

/* Etapa 235: administración de presentaciones */
.catalogo-admin-presentation-form{margin-bottom:16px}
.catalogo-admin-presentation-switches{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.catalogo-admin-presentation-list{display:grid;gap:10px}
.catalogo-admin-presentation-item{display:grid;grid-template-columns:54px minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:12px 14px;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:linear-gradient(145deg,rgba(255,255,255,.045),rgba(255,255,255,.018));transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,opacity .18s ease}
.catalogo-admin-presentation-item:hover{border-color:rgba(245,181,54,.48);box-shadow:0 10px 24px rgba(0,0,0,.18)}
.catalogo-admin-presentation-item.is-inactive{opacity:.58}
.catalogo-admin-presentation-item.is-dragging{opacity:.72;transform:scale(1.015);border-color:#f6b536;box-shadow:0 16px 34px rgba(0,0,0,.34)}
.catalogo-admin-presentation-order{display:flex;align-items:center;gap:8px;color:#f6b536}
.catalogo-admin-presentation-handle{font-size:20px;line-height:1;cursor:grab;user-select:none;touch-action:none}
.catalogo-admin-presentation-handle:active{cursor:grabbing}
.catalogo-admin-presentation-info{min-width:0;display:grid;gap:3px}
.catalogo-admin-presentation-info>div{display:flex;align-items:center;gap:8px;min-width:0}
.catalogo-admin-presentation-info strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.catalogo-admin-presentation-info small{color:rgba(255,255,255,.68)}
.catalogo-admin-presentation-badge{display:inline-flex;align-items:center;padding:3px 7px;border-radius:999px;background:rgba(246,181,54,.15);border:1px solid rgba(246,181,54,.38);color:#ffd77b;font-size:11px;font-weight:800}
.catalogo-admin-presentation-state{padding:5px 9px;border-radius:999px;background:rgba(46,204,113,.12);color:#75eaa5;font-size:12px;font-weight:800;white-space:nowrap}
.catalogo-admin-presentation-item.is-inactive .catalogo-admin-presentation-state{background:rgba(255,255,255,.08);color:rgba(255,255,255,.55)}
.catalogo-admin-presentation-actions{display:flex;gap:6px}
.catalogo-admin-presentation-actions button:disabled{opacity:.3;cursor:not-allowed}
@media(max-width:720px){
  .catalogo-admin-presentation-switches{grid-template-columns:1fr}
  .catalogo-admin-presentation-item{grid-template-columns:42px minmax(0,1fr) auto;padding:11px 10px;gap:8px}
  .catalogo-admin-presentation-state{grid-column:2/3;justify-self:start}
  .catalogo-admin-presentation-actions{grid-column:3;grid-row:1/3;flex-direction:column}
}

/* ETAPA 236: precios por presentación */
.catalogo-admin-price-table-presentations .catalogo-admin-price-table-head,
.catalogo-admin-price-table-presentations .catalogo-admin-price-row{
  grid-template-columns:minmax(210px,1.15fr) minmax(190px,1fr) minmax(150px,.72fr) 64px!important;
  gap:12px;
}
.catalogo-admin-price-presentation,
.catalogo-admin-price-type{min-width:0}
.catalogo-admin-price-presentation select,
.catalogo-admin-price-type select{
  width:100%;height:46px;border:1px solid rgba(255,255,255,.12);border-radius:13px;
  background:#171717;color:#fff;padding:0 38px 0 13px;font:inherit;font-weight:800;outline:none;
}
.catalogo-admin-price-presentation select:focus,
.catalogo-admin-price-type select:focus{border-color:#ffb347;box-shadow:0 0 0 3px rgba(255,179,71,.1)}
.catalogo-admin-price-table-presentations .catalogo-admin-price-delete{display:grid!important;place-items:center;border:0;border-radius:12px;background:rgba(239,68,68,.12);color:#ff8f8f;cursor:pointer}
.catalogo-admin-price-table-presentations .catalogo-admin-price-delete:hover{background:rgba(239,68,68,.22)}
@media(max-width:820px){
  .catalogo-admin-price-table-presentations{min-width:760px}
}

/* Etapa 237: selector publico de presentaciones flexibles */
.buy-type:has(.presentation-choice-btn){
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(132px,1fr));
  gap:9px;
}
.presentation-choice-btn{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:3px;
  min-height:52px;
  text-align:left;
}
.presentation-choice-btn small{
  display:block;
  font-size:10px;
  line-height:1.2;
  color:var(--text-muted,#aeb6c5);
  font-weight:700;
}
.presentation-choice-btn.active small{color:#2d2414;}
.modal-price-card--presentation{cursor:pointer;text-align:left;width:100%;}
.modal-price-card__legacy{
  display:inline-flex;
  margin-top:8px;
  padding:4px 8px;
  border-radius:999px;
  background:rgba(246,181,54,.13);
  color:#f6b536;
  font-size:10px;
  font-weight:800;
}
#add-cart-button.is-presentation-preview{
  opacity:.78;
  cursor:pointer;
  font-size:12px;
}
@media (max-width:768px){
  .buy-type:has(.presentation-choice-btn){grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;}
  .presentation-choice-btn{min-height:48px;padding:8px;font-size:11px;}
  .presentation-choice-btn small{font-size:9px;}
}

/* Etapa 243: formulario simplificado y edición enfocada de presentaciones */
.catalogo-admin-presentation-form-title{
  margin-bottom:14px;
  color:#f6b536;
  font-size:17px;
  font-weight:900;
}
.catalogo-admin-presentation-main-fields{
  align-items:end;
}
.catalogo-admin-presentation-quantity{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:9px;
}
.catalogo-admin-presentation-quantity span{
  color:rgba(255,255,255,.68);
  font-size:13px;
  font-weight:700;
  white-space:nowrap;
}
.catalogo-admin-presentation-switches .catalogo-admin-switch-field small{
  grid-column:1/-1;
  color:rgba(255,255,255,.58);
  font-size:11px;
  line-height:1.35;
}
.catalogo-admin-content.is-presentation-editing .catalogo-admin-presentation-form{
  margin:0;
  animation:catalogoPresentationFocusIn .18s ease both;
}
@keyframes catalogoPresentationFocusIn{
  from{opacity:0;transform:translateY(6px)}
  to{opacity:1;transform:none}
}
@media (max-width:700px){
  .catalogo-admin-presentation-main-fields{grid-template-columns:1fr}
  .catalogo-admin-presentation-form-title{font-size:16px;margin-bottom:10px}
}

/* Etapa 247: precios por presentación + presentación principal de Stock */
.catalogo-admin-price-table-presentations .catalogo-admin-price-table-head,
.catalogo-admin-price-table-presentations .catalogo-admin-price-row{
  grid-template-columns:minmax(210px,1.35fr) minmax(170px,.9fr) minmax(130px,.68fr) 72px 72px!important;
  gap:12px;
}
.catalogo-admin-price-presentation,
.catalogo-admin-price-stock{min-width:0}
.catalogo-admin-price-presentation select{
  width:100%;height:46px;border:1px solid rgba(255,255,255,.12);border-radius:13px;
  background:#171717;color:#fff;padding:0 42px 0 14px;font:inherit;font-weight:800;outline:none;
}
.catalogo-admin-price-presentation select:focus{border-color:#ffb347}
.catalogo-admin-price-stock{display:grid;place-items:center}
.catalogo-admin-stock-radio{width:42px;height:42px;display:grid;place-items:center;cursor:pointer}
.catalogo-admin-stock-radio input{position:absolute;opacity:0;pointer-events:none}
.catalogo-admin-stock-radio span{
  width:22px;height:22px;border-radius:50%;border:2px solid rgba(255,255,255,.38);
  background:#151515;box-shadow:inset 0 0 0 5px #151515;transition:.18s ease;
}
.catalogo-admin-stock-radio:hover span{border-color:#ffb347}
.catalogo-admin-stock-radio input:checked + span{border-color:#ffb347;background:#ffb347;box-shadow:inset 0 0 0 5px #151515,0 0 0 4px rgba(255,179,71,.12)}
.catalogo-admin-stock-radio input:focus-visible + span{outline:2px solid #fff;outline-offset:3px}
.catalogo-admin-stock-radio input:disabled + span{opacity:.25;cursor:not-allowed}
@media(max-width:820px){
  .catalogo-admin-price-table-presentations{min-width:760px!important}
}

/* Etapa 248: disponibilidad por producto de cada presentacion */
.catalogo-admin-presentation-availability{
  margin:0 0 18px;padding:15px;border:1px solid rgba(255,179,71,.18);border-radius:18px;
  background:linear-gradient(180deg,rgba(255,179,71,.06),rgba(255,255,255,.025));
}
.catalogo-admin-presentation-availability-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px}
.catalogo-admin-presentation-availability-head>div{display:grid;gap:3px}
.catalogo-admin-presentation-availability-head strong{font-size:14px;color:#fff}
.catalogo-admin-presentation-availability-head small{font-size:11px;color:rgba(255,255,255,.58);line-height:1.35}
.catalogo-admin-presentation-availability-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}
.catalogo-admin-presentation-availability-card{display:grid;gap:10px;padding:12px;border:1px solid rgba(255,255,255,.08);border-radius:14px;background:rgba(10,10,10,.34)}
.catalogo-admin-presentation-availability-title{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.catalogo-admin-presentation-availability-title strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.catalogo-admin-presentation-availability-title small{flex:0 0 auto;color:rgba(255,255,255,.5);font-size:10px}
.catalogo-admin-presentation-availability-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.catalogo-admin-presentation-availability-options label{position:relative;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:7px;padding:9px 10px;border:1px solid rgba(255,255,255,.08);border-radius:11px;background:rgba(255,255,255,.035);cursor:pointer}
.catalogo-admin-presentation-availability-options input{width:17px;height:17px;accent-color:#ffb347;cursor:pointer}
.catalogo-admin-presentation-availability-options span{font-size:12px;font-weight:900;color:#fff}
.catalogo-admin-presentation-availability-options small{grid-column:1/-1;color:rgba(255,255,255,.48);font-size:9px;line-height:1.3}
@media(max-width:700px){
  .catalogo-admin-presentation-availability{padding:12px}
  .catalogo-admin-presentation-availability-grid{grid-template-columns:1fr}
  .catalogo-admin-presentation-availability-options{grid-template-columns:1fr 1fr}
}


/* Etapa 249: Disponibilidad separada de Precios */
.catalogo-admin-panel.create-mode .catalogo-admin-tabs [data-admin-tab="disponibilidad"]{
  opacity:.45;
}
.catalogo-admin-price-table-presentations .catalogo-admin-price-table-head,
.catalogo-admin-price-table-presentations .catalogo-admin-price-row{
  grid-template-columns:minmax(220px,1.35fr) minmax(180px,1fr) minmax(145px,.72fr) 72px!important;
}
.catalogo-admin-availability-heading{align-items:flex-start}
.catalogo-admin-availability-heading>div{display:grid;gap:4px}
.catalogo-admin-availability-heading p{margin:0;color:rgba(255,255,255,.62);font-size:12px;line-height:1.45}
.catalogo-admin-availability-list{display:block}
.catalogo-admin-presentation-availability{margin:0}
.catalogo-admin-presentation-availability-options--three{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.catalogo-admin-presentation-stock-option input[type="radio"]{
  width:17px;height:17px;accent-color:#ffb347;cursor:pointer;
}
.catalogo-admin-presentation-stock-option:has(input:checked){
  border-color:rgba(255,179,71,.5);
  background:rgba(255,179,71,.08);
}
.catalogo-admin-presentation-stock-option:has(input:checked) span{color:#ffbf61}
@media(max-width:820px){
  .catalogo-admin-price-table-presentations{min-width:690px!important}
  .catalogo-admin-presentation-availability-options--three{grid-template-columns:1fr}
}

/* Etapa 251: Disponibilidad compacta, alineada y con controles consistentes */
.catalogo-admin-presentation-availability{
  margin:0;
  padding:0;
  border:0;
  border-radius:0;
  background:none;
}
.catalogo-admin-availability-table{
  width:100%;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.09);
  border-radius:14px;
  background:rgba(255,255,255,.018);
  box-shadow:0 14px 32px rgba(0,0,0,.14);
}
.catalogo-admin-availability-table-head,
.catalogo-admin-availability-row{
  display:grid;
  grid-template-columns:minmax(120px,1.55fr) minmax(62px,.58fr) minmax(62px,.58fr) minmax(104px,.9fr);
  align-items:center;
  column-gap:0;
  padding:0 12px;
}
.catalogo-admin-availability-table-head{
  min-height:40px;
  border-bottom:1px solid rgba(255,255,255,.1);
  background:linear-gradient(180deg,rgba(255,179,71,.11),rgba(255,179,71,.055));
}
.catalogo-admin-availability-table-head>div{
  min-width:0;
  padding:7px 8px;
  color:rgba(255,255,255,.72);
  font-size:11px;
  font-weight:900;
  line-height:1.1;
  letter-spacing:.02em;
}
.catalogo-admin-availability-table-head>div:not(:first-child){text-align:center}
.catalogo-admin-availability-table-body{display:block}
.catalogo-admin-availability-row{
  min-height:42px;
  border-bottom:1px solid rgba(255,255,255,.065);
  background:rgba(12,12,12,.28);
  transition:background .16s ease,border-color .16s ease;
}
.catalogo-admin-availability-row:last-child{border-bottom:0}
.catalogo-admin-availability-row:hover{background:rgba(255,255,255,.035)}
.catalogo-admin-availability-name{
  min-width:0;
  display:flex;
  align-items:center;
  height:100%;
  padding:6px 8px;
}
.catalogo-admin-availability-name strong{
  display:block;
  overflow:hidden;
  color:#fff;
  font-size:13px;
  font-weight:900;
  line-height:1.2;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.catalogo-admin-availability-control{
  min-width:0;
  display:flex;
  align-items:center;
  justify-content:center;
  height:100%;
  padding:4px;
}
.catalogo-admin-availability-check,
.catalogo-admin-availability-radio{
  position:relative;
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.catalogo-admin-availability-check input,
.catalogo-admin-availability-radio input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.catalogo-admin-availability-check span{
  width:18px;
  height:18px;
  display:grid;
  place-items:center;
  border:2px solid rgba(255,255,255,.35);
  border-radius:5px;
  background:#161616;
  box-sizing:border-box;
  transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease;
}
.catalogo-admin-availability-check span::after{
  content:"";
  width:7px;
  height:4px;
  border-left:2px solid #171717;
  border-bottom:2px solid #171717;
  opacity:0;
  transform:rotate(-45deg) translateY(-1px);
  transition:opacity .12s ease;
}
.catalogo-admin-availability-check:hover span{border-color:#ffb347}
.catalogo-admin-availability-check input:checked + span{
  border-color:#ffb347;
  background:#ffb347;
  box-shadow:0 0 0 3px rgba(255,179,71,.09);
}
.catalogo-admin-availability-check input:checked + span::after{opacity:1}
.catalogo-admin-availability-check input:focus-visible + span,
.catalogo-admin-availability-radio input:focus-visible + span{outline:2px solid #fff;outline-offset:3px}
.catalogo-admin-availability-radio span{
  position:relative;
  width:18px;
  height:18px;
  display:block;
  border:2px solid rgba(255,255,255,.38);
  border-radius:50%;
  background:#161616;
  box-sizing:border-box;
  transition:border-color .16s ease,background .16s ease,box-shadow .16s ease;
}
.catalogo-admin-availability-radio span::after{
  content:"";
  position:absolute;
  width:8px;
  height:8px;
  left:50%;
  top:50%;
  border-radius:50%;
  background:#ffb347;
  opacity:0;
  transform:translate(-50%,-50%) scale(.45);
  transition:opacity .14s ease,transform .14s ease;
}
.catalogo-admin-availability-radio:hover span{border-color:#ffb347}
.catalogo-admin-availability-radio input:checked + span{
  border-color:#ffb347;
  background:#161616;
  box-shadow:0 0 0 3px rgba(255,179,71,.09);
}
.catalogo-admin-availability-radio input:checked + span::after{
  opacity:1;
  transform:translate(-50%,-50%) scale(1);
}
@media(max-width:700px){
  .catalogo-admin-availability-table{border-radius:12px}
  .catalogo-admin-availability-table-head,
  .catalogo-admin-availability-row{
    grid-template-columns:minmax(88px,1.45fr) minmax(54px,.62fr) minmax(54px,.62fr) minmax(82px,.9fr);
    padding-left:7px;
    padding-right:7px;
  }
  .catalogo-admin-availability-table-head{min-height:38px}
  .catalogo-admin-availability-table-head>div{
    padding:6px 3px;
    font-size:9.5px;
    letter-spacing:0;
  }
  .catalogo-admin-availability-row{min-height:40px}
  .catalogo-admin-availability-name{padding:5px 4px}
  .catalogo-admin-availability-name strong{font-size:11.5px}
  .catalogo-admin-availability-control{padding:3px 2px}
  .catalogo-admin-availability-check,
  .catalogo-admin-availability-radio{width:28px;height:28px}
  .catalogo-admin-availability-check span,
  .catalogo-admin-availability-radio span{width:18px;height:18px}
}
@media(max-width:380px){
  .catalogo-admin-availability-table-head,
  .catalogo-admin-availability-row{
    grid-template-columns:minmax(78px,1.4fr) minmax(50px,.58fr) minmax(50px,.58fr) minmax(76px,.86fr);
    padding-left:5px;
    padding-right:5px;
  }
  .catalogo-admin-availability-table-head>div{font-size:9px}
  .catalogo-admin-availability-name strong{font-size:11px}
}

/* Etapa 252: alineación fina de Disponibilidad y límites de Precios */
.catalogo-admin-availability-row{
  align-items:stretch;
}
.catalogo-admin-availability-name,
.catalogo-admin-availability-control{
  align-self:stretch;
  min-height:40px;
  box-sizing:border-box;
}
.catalogo-admin-availability-name{
  justify-content:flex-start;
}
.catalogo-admin-availability-control{
  display:grid;
  place-items:center;
}
.catalogo-admin-availability-check,
.catalogo-admin-availability-radio{
  align-self:center;
  justify-self:center;
  margin:0;
}
.catalogo-admin-availability-check span,
.catalogo-admin-availability-radio span{
  margin:0;
}
@media(max-width:700px){
  .catalogo-admin-availability-name,
  .catalogo-admin-availability-control{min-height:38px}
}


/* Etapa 253: centrado real de controles en Disponibilidad */
.catalogo-admin-availability-row{
  min-height:44px;
  align-items:center;
}
.catalogo-admin-availability-row > .catalogo-admin-availability-name,
.catalogo-admin-availability-row > .catalogo-admin-availability-control{
  height:44px;
  min-height:44px;
  padding-top:0;
  padding-bottom:0;
  align-self:center;
  box-sizing:border-box;
}
.catalogo-admin-availability-row > .catalogo-admin-availability-name{
  display:flex;
  align-items:center;
}
.catalogo-admin-availability-row > .catalogo-admin-availability-control{
  display:flex;
  align-items:center;
  justify-content:center;
  line-height:0;
}
.catalogo-admin-availability-row .catalogo-admin-availability-check,
.catalogo-admin-availability-row .catalogo-admin-availability-radio{
  width:30px;
  height:30px;
  margin:0;
  padding:0;
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 30px;
}
.catalogo-admin-availability-row .catalogo-admin-availability-check span,
.catalogo-admin-availability-row .catalogo-admin-availability-radio span{
  display:block;
  margin:0;
  flex:0 0 auto;
}
.catalogo-admin-availability-row .catalogo-admin-availability-check span{display:grid;place-items:center}
@media(max-width:700px){
  .catalogo-admin-availability-row{min-height:42px}
  .catalogo-admin-availability-row > .catalogo-admin-availability-name,
  .catalogo-admin-availability-row > .catalogo-admin-availability-control{height:42px;min-height:42px}
}


/* Etapa 254: orden de precios, selector publico limpio y tabla movil coherente */
.catalogo-admin-price-table-presentations{
  min-width:0!important;
}
.catalogo-admin-price-table-presentations .catalogo-admin-price-table-head,
.catalogo-admin-price-table-presentations .catalogo-admin-price-row{
  grid-template-columns:40px minmax(150px,1.25fr) minmax(145px,1fr) minmax(118px,.72fr) 54px!important;
  gap:9px;
  align-items:center;
}
.catalogo-admin-price-table-presentations .catalogo-admin-price-table-head{
  display:grid!important;
  padding:0 10px;
}
.catalogo-admin-price-table-presentations .catalogo-admin-price-table-head span{
  min-width:0;
}
.catalogo-admin-price-table-presentations .catalogo-admin-price-table-head span:first-child,
.catalogo-admin-price-table-presentations .catalogo-admin-price-table-head span:last-child{
  text-align:center;
}
.catalogo-admin-price-table-presentations .catalogo-admin-price-row{
  padding:9px 10px;
}
.catalogo-admin-price-table-presentations .catalogo-admin-price-drag{
  width:34px;
  height:38px;
  justify-self:center;
  display:grid;
  place-items:center;
  font-size:20px;
  color:rgba(255,255,255,.48);
  touch-action:none;
}
.catalogo-admin-price-table-presentations .catalogo-admin-price-row.is-dragging{
  opacity:.62;
  border-color:rgba(255,179,71,.55);
  background:rgba(255,179,71,.09);
  transform:scale(.995);
}
.catalogo-admin-price-table-presentations .catalogo-admin-price-presentation select,
.catalogo-admin-price-table-presentations .catalogo-admin-price-type select{
  height:42px;
  min-width:0;
  padding-left:11px;
  padding-right:30px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.catalogo-admin-price-table-presentations .catalogo-admin-price-money{
  height:42px;
  min-width:0;
  gap:5px;
  padding:0 9px;
}
.catalogo-admin-price-table-presentations .catalogo-admin-price-money>span{
  font-size:12px;
}
.catalogo-admin-price-table-presentations .catalogo-admin-price-money input{
  min-width:0!important;
  font-size:13px;
}
.catalogo-admin-price-table-presentations .catalogo-admin-price-controls{
  display:flex;
  align-items:center;
  justify-content:center;
}
.catalogo-admin-price-table-presentations .catalogo-admin-price-delete{
  width:38px;
  height:38px;
}
.catalogo-admin-price-table-presentations.has-order-change{
  border-radius:14px;
  box-shadow:0 0 0 1px rgba(255,179,71,.18);
}

.presentation-choice-btn{
  align-items:center;
  text-align:center;
  min-height:46px;
  padding:9px 12px;
}
.presentation-choice-btn>span{
  display:block;
  width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-weight:900;
}
.presentation-choice-btn:disabled,
.presentation-choice-btn.is-unavailable{
  opacity:.38;
  cursor:not-allowed;
  filter:saturate(.45);
  border-color:rgba(255,255,255,.08);
  background:rgba(255,255,255,.035);
}
.presentation-choice-btn:disabled:hover,
.presentation-choice-btn.is-unavailable:hover{
  transform:none;
  box-shadow:none;
}

@media(max-width:700px){
  .catalogo-admin-price-table-presentations{
    width:100%;
    min-width:0!important;
    overflow:visible;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-table-head,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-row{
    grid-template-columns:26px minmax(0,1.18fr) minmax(0,1fr) 76px 34px!important;
    gap:5px;
    width:100%;
    min-width:0!important;
    box-sizing:border-box;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-table-head{
    padding:0 5px;
    font-size:8px;
    letter-spacing:0;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-table-head span{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-table-head span:nth-child(1){
    font-size:0;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-table-head span:nth-child(1)::after{
    content:"↕";
    font-size:12px;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-row{
    padding:7px 5px;
    border-radius:12px;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-drag{
    width:26px;
    height:34px;
    font-size:17px;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-presentation,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-type,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-money,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-controls{
    grid-column:auto!important;
    grid-row:auto!important;
    min-width:0!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-presentation select,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-type select{
    width:100%;
    min-width:0;
    height:36px;
    border-radius:9px;
    padding:0 20px 0 7px;
    font-size:10px;
    font-weight:800;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-money{
    width:100%;
    height:36px;
    border-radius:9px;
    padding:0 6px;
    gap:3px;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-money>span{
    font-size:9px;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-money input{
    width:100%!important;
    height:34px!important;
    font-size:10px;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-delete{
    width:32px;
    height:32px;
    border-radius:9px;
    font-size:12px;
  }
  .buy-type:has(.presentation-choice-btn){
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px;
  }
  .presentation-choice-btn{
    min-height:42px;
    padding:8px 7px;
    font-size:10.5px;
  }
}

@media(max-width:380px){
  .catalogo-admin-price-table-presentations .catalogo-admin-price-table-head,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-row{
    grid-template-columns:24px minmax(0,1.12fr) minmax(0,.96fr) 70px 31px!important;
    gap:4px;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-presentation select,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-type select{
    font-size:9px;
    padding-left:5px;
    padding-right:17px;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-money{
    padding:0 4px;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-money>span{
    display:none;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-money input{
    font-size:9.5px;
  }
}

/* ETAPA 255 - ajuste definitivo de Precios en movil */
@media(max-width:820px){
  .catalogo-admin-price-list{
    overflow-x:auto!important;
    overflow-y:visible!important;
    padding-bottom:7px!important;
    scrollbar-width:thin;
  }
  .catalogo-admin-price-table-presentations{
    width:100%!important;
    min-width:610px!important;
    gap:7px!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-table-head,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-row{
    grid-template-columns:30px minmax(160px,1.2fr) minmax(145px,1fr) 112px 42px!important;
    gap:6px!important;
    width:100%!important;
    box-sizing:border-box!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-table-head{
    padding:0 7px 2px!important;
    font-size:9px!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-table-head span:nth-child(1){font-size:0!important}
  .catalogo-admin-price-table-presentations .catalogo-admin-price-table-head span:nth-child(1)::after{content:"↕";font-size:12px}
  .catalogo-admin-price-table-presentations .catalogo-admin-price-row{
    min-height:0!important;
    padding:5px 7px!important;
    border-radius:12px!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-drag{
    width:28px!important;height:34px!important;font-size:17px!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-presentation,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-type,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-money,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-controls{
    grid-column:auto!important;grid-row:auto!important;min-width:0!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-presentation select,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-type select{
    width:100%!important;height:38px!important;min-width:0!important;
    padding:0 24px 0 8px!important;border-radius:9px!important;font-size:10px!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-money{
    display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;
    width:100%!important;height:38px!important;min-width:0!important;
    padding:0 7px!important;gap:4px!important;border-radius:9px!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-money>span{
    display:block!important;font-size:9px!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-money input{
    width:100%!important;min-width:0!important;height:36px!important;padding:0!important;
    border:0!important;background:transparent!important;text-align:right!important;
    font-size:11px!important;font-weight:900!important;font-variant-numeric:tabular-nums;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-controls{
    display:flex!important;align-items:center!important;justify-content:center!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-delete{
    display:grid!important;place-items:center!important;width:34px!important;height:34px!important;
    margin:0!important;border-radius:9px!important;font-size:12px!important;
  }
}

/* ETAPA 257 - tabla de precios movil compacta y arrastre visible */
.catalogo-admin-price-table-presentations .catalogo-admin-price-drag{
  display:grid!important;
  place-items:center!important;
  width:30px!important;
  height:38px!important;
  padding:0!important;
  border:1px solid rgba(255,255,255,.12)!important;
  border-radius:9px!important;
  background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.025))!important;
  color:#a9a9a9!important;
  font-size:17px!important;
  font-weight:900!important;
  line-height:1!important;
  letter-spacing:-3px!important;
  cursor:grab!important;
  touch-action:none!important;
  user-select:none!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06)!important;
  transition:transform .15s ease,border-color .15s ease,background .15s ease,color .15s ease,box-shadow .15s ease!important;
}
.catalogo-admin-price-table-presentations .catalogo-admin-price-drag:hover{
  color:#f6b536!important;
  border-color:rgba(246,181,54,.52)!important;
  background:rgba(246,181,54,.09)!important;
  box-shadow:0 5px 14px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.07)!important;
  transform:translateY(-1px)!important;
}
.catalogo-admin-price-table-presentations .catalogo-admin-price-drag.is-grabbing,
.catalogo-admin-price-table-presentations .catalogo-admin-price-drag:active{
  cursor:grabbing!important;
  color:#ffbd45!important;
  border-color:#d99a25!important;
  background:rgba(246,181,54,.15)!important;
  box-shadow:0 2px 8px rgba(0,0,0,.28),0 0 0 2px rgba(246,181,54,.10)!important;
  transform:scale(.95)!important;
}
.catalogo-admin-price-table-presentations .catalogo-admin-price-rows.is-sorting{
  cursor:grabbing!important;
}
.catalogo-admin-price-table-presentations .catalogo-admin-price-row{
  transition:border-color .15s ease,background .15s ease,box-shadow .15s ease,transform .15s ease!important;
}
.catalogo-admin-price-table-presentations .catalogo-admin-price-row.is-dragging{
  opacity:.94!important;
  border-color:rgba(246,181,54,.76)!important;
  background:linear-gradient(90deg,rgba(246,181,54,.12),rgba(246,181,54,.025))!important;
  box-shadow:0 10px 24px rgba(0,0,0,.34),0 0 0 1px rgba(246,181,54,.13)!important;
  transform:scale(1.006)!important;
  position:relative;
  z-index:5;
}

@media(max-width:820px){
  .catalogo-admin-price-list{
    overflow-x:auto!important;
    overflow-y:visible!important;
    overscroll-behavior-x:contain!important;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
    padding:0 0 5px!important;
  }
  .catalogo-admin-price-table-presentations{
    width:max-content!important;
    min-width:350px!important;
    max-width:none!important;
    gap:4px!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-table-head,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-row{
    grid-template-columns:26px 96px 82px 92px 38px!important;
    gap:4px!important;
    width:350px!important;
    min-width:350px!important;
    box-sizing:border-box!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-table-head{
    min-height:22px!important;
    padding:0 4px 2px!important;
    align-items:center!important;
    font-size:8.5px!important;
    line-height:1.05!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-table-head span{
    min-width:0!important;
    text-align:center!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-table-head span:nth-child(2){text-align:left!important}
  .catalogo-admin-price-table-presentations .catalogo-admin-price-table-head span:nth-child(1){font-size:0!important}
  .catalogo-admin-price-table-presentations .catalogo-admin-price-table-head span:nth-child(1)::after{content:"↕";font-size:12px!important}
  .catalogo-admin-price-table-presentations .catalogo-admin-price-row{
    min-height:42px!important;
    padding:3px 4px!important;
    align-items:center!important;
    border-radius:10px!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-drag{
    width:25px!important;
    height:32px!important;
    border-radius:8px!important;
    font-size:15px!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-presentation,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-type,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-money,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-controls{
    grid-column:auto!important;
    grid-row:auto!important;
    min-width:0!important;
    align-self:center!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-presentation select,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-type select{
    width:100%!important;
    min-width:0!important;
    height:34px!important;
    padding:0 17px 0 6px!important;
    border-radius:8px!important;
    font-size:9.5px!important;
    line-height:34px!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-money{
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr)!important;
    width:100%!important;
    min-width:0!important;
    height:34px!important;
    padding:0 5px!important;
    gap:3px!important;
    border-radius:8px!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-money>span{
    display:block!important;
    font-size:8.5px!important;
    line-height:1!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-money input{
    width:100%!important;
    min-width:0!important;
    height:32px!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    text-align:right!important;
    font-size:10.5px!important;
    font-weight:900!important;
    font-variant-numeric:tabular-nums!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-controls{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-delete{
    display:grid!important;
    place-items:center!important;
    width:31px!important;
    height:31px!important;
    margin:0!important;
    border-radius:8px!important;
    font-size:11px!important;
  }
}

@media(max-width:380px){
  .catalogo-admin-price-table-presentations{
    min-width:344px!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-table-head,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-row{
    grid-template-columns:24px 93px 78px 91px 38px!important;
    gap:4px!important;
    width:340px!important;
    min-width:340px!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-presentation select,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-type select{
    font-size:9px!important;
    padding-left:5px!important;
    padding-right:15px!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-money input{
    font-size:10px!important;
  }
}

/* ETAPA 258 - ordenamiento elegante y encuadre movil hasta Precio total */
.catalogo-admin-price-table-presentations .catalogo-admin-price-row{
  position:relative;
}
.catalogo-admin-price-table-presentations .catalogo-admin-price-row.drop-before::before,
.catalogo-admin-price-table-presentations .catalogo-admin-price-row.drop-after::after{
  content:"";
  position:absolute;
  z-index:8;
  left:8px;
  right:8px;
  height:3px;
  border-radius:999px;
  background:#ffb347;
  box-shadow:0 0 0 1px rgba(255,179,71,.16),0 0 14px rgba(255,179,71,.68);
  pointer-events:none;
}
.catalogo-admin-price-table-presentations .catalogo-admin-price-row.drop-before::before{top:-6px}
.catalogo-admin-price-table-presentations .catalogo-admin-price-row.drop-after::after{bottom:-6px}
.catalogo-admin-price-table-presentations .catalogo-admin-price-rows.is-sorting .catalogo-admin-price-row:not(.is-dragging){
  transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease!important;
}
.catalogo-admin-price-table-presentations .catalogo-admin-price-row.is-dragging{
  opacity:.88!important;
  border-color:rgba(255,179,71,.82)!important;
  background:linear-gradient(135deg,rgba(255,179,71,.15),rgba(255,255,255,.045))!important;
  box-shadow:0 16px 34px rgba(0,0,0,.38),0 0 0 1px rgba(255,179,71,.16)!important;
  transform:scale(1.012)!important;
}
.catalogo-admin-price-table-presentations .catalogo-admin-price-drag{
  background:rgba(255,255,255,.045)!important;
  border-color:rgba(255,255,255,.10)!important;
  color:#b8b8b8!important;
}
.catalogo-admin-price-table-presentations .catalogo-admin-price-drag:hover{
  color:#fff!important;
  border-color:rgba(255,179,71,.42)!important;
  background:rgba(255,179,71,.10)!important;
}
.catalogo-admin-price-table-presentations .catalogo-admin-price-drag.is-grabbing{
  color:#17120a!important;
  border-color:#ffb347!important;
  background:#ffb347!important;
  box-shadow:0 7px 18px rgba(0,0,0,.30),0 0 0 3px rgba(255,179,71,.12)!important;
  transform:scale(.96)!important;
}

@media(max-width:820px){
  .catalogo-admin-price-list{
    overflow-x:auto!important;
    overflow-y:visible!important;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain!important;
    scrollbar-width:thin;
    scrollbar-color:rgba(255,179,71,.45) rgba(255,255,255,.04);
  }
  .catalogo-admin-price-list::-webkit-scrollbar{height:5px}
  .catalogo-admin-price-list::-webkit-scrollbar-track{background:rgba(255,255,255,.04);border-radius:999px}
  .catalogo-admin-price-list::-webkit-scrollbar-thumb{background:rgba(255,179,71,.45);border-radius:999px}
  .catalogo-admin-price-table-presentations{
    width:326px!important;
    min-width:326px!important;
    max-width:none!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-table-head,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-row{
    grid-template-columns:24px 84px 74px 82px 38px!important;
    gap:4px!important;
    width:326px!important;
    min-width:326px!important;
    box-sizing:border-box!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-table-head{
    padding-left:3px!important;
    padding-right:3px!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-row{
    padding:3px!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-presentation select,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-type select{
    font-size:9px!important;
    padding-left:5px!important;
    padding-right:14px!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-money{
    padding-left:4px!important;
    padding-right:4px!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-money>span{font-size:8px!important}
  .catalogo-admin-price-table-presentations .catalogo-admin-price-money input{font-size:10px!important}
  .catalogo-admin-price-table-presentations .catalogo-admin-price-row.drop-before::before,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-row.drop-after::after{
    left:4px;
    right:4px;
    height:2px;
  }
}

@media(max-width:360px){
  .catalogo-admin-price-table-presentations{
    width:318px!important;
    min-width:318px!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-table-head,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-row{
    grid-template-columns:22px 80px 72px 80px 36px!important;
    width:318px!important;
    min-width:318px!important;
  }
}

/* ===== ETAPA 259: precios - ordenamiento coherente con Sabores/Surtidos ===== */
.catalogo-admin-price-sort-placeholder{
  box-sizing:border-box;
  border:1px dashed rgba(255,179,71,.9)!important;
  border-radius:12px!important;
  background:rgba(255,179,71,.08)!important;
  box-shadow:inset 0 0 0 1px rgba(255,179,71,.08)!important;
  margin:2px 0!important;
}
.catalogo-admin-price-row.is-drag-source{
  opacity:.18!important;
  pointer-events:none!important;
}
.catalogo-admin-price-drag-ghost{
  position:fixed!important;
  z-index:10050!important;
  margin:0!important;
  pointer-events:none!important;
  opacity:.97!important;
  transform:scale(1.015)!important;
  transform-origin:center!important;
  border:1px solid rgba(255,179,71,.95)!important;
  border-radius:12px!important;
  background:#171717!important;
  box-shadow:0 18px 42px rgba(0,0,0,.48),0 0 0 3px rgba(255,179,71,.12)!important;
}
.catalogo-admin-price-drag-ghost .catalogo-admin-price-drag{
  color:#17120a!important;
  background:#ffb347!important;
  border-color:#ffb347!important;
}
html.catalogo-admin-sorting,
html.catalogo-admin-sorting body{
  cursor:grabbing!important;
}
html.catalogo-admin-sorting .catalogo-admin-price-list{
  overflow-x:hidden!important;
}

/* El asa conserva el mismo lenguaje visual de Sabores/Surtidos. */
.catalogo-admin-price-table-presentations .catalogo-admin-price-drag{
  touch-action:none!important;
  cursor:grab!important;
  user-select:none!important;
  -webkit-user-select:none!important;
}
.catalogo-admin-price-table-presentations .catalogo-admin-price-drag:active{
  cursor:grabbing!important;
}

/* ===== ETAPA 259: móvil - visibles Orden, Presentación, Tipo y Precio total ===== */
@media(max-width:820px){
  .catalogo-admin-price-list{
    overflow-x:auto!important;
    overflow-y:visible!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-x:contain!important;
    padding-bottom:4px!important;
  }
  /* Los primeros cuatro campos caben en ~360px; Acción queda a la derecha. */
  .catalogo-admin-price-table-presentations{
    width:404px!important;
    min-width:404px!important;
    max-width:none!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-table-head,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-row{
    grid-template-columns:28px 104px 96px 104px 44px!important;
    column-gap:4px!important;
    width:404px!important;
    min-width:404px!important;
    box-sizing:border-box!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-table-head{
    padding:7px 4px!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-row{
    min-height:42px!important;
    padding:4px!important;
    row-gap:0!important;
    align-items:center!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-drag{
    width:26px!important;
    min-width:26px!important;
    height:32px!important;
    min-height:32px!important;
    padding:0!important;
    border-radius:8px!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-presentation,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-type,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-money,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-controls{
    min-width:0!important;
    height:34px!important;
    align-self:center!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-presentation select,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-type select{
    width:100%!important;
    min-width:0!important;
    height:34px!important;
    font-size:10px!important;
    padding:0 20px 0 7px!important;
    text-overflow:ellipsis!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-money{
    display:grid!important;
    grid-template-columns:18px minmax(0,1fr)!important;
    align-items:center!important;
    width:100%!important;
    padding:0 6px!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-money>span{
    font-size:9px!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-money input{
    width:100%!important;
    min-width:0!important;
    height:32px!important;
    padding:0 2px!important;
    font-size:11px!important;
    text-align:right!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-controls{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-delete{
    width:36px!important;
    min-width:36px!important;
    height:34px!important;
    min-height:34px!important;
  }
  .catalogo-admin-price-drag-ghost{
    max-width:none!important;
  }
}

@media(max-width:380px){
  .catalogo-admin-price-table-presentations{
    width:392px!important;
    min-width:392px!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-table-head,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-row{
    grid-template-columns:26px 98px 92px 102px 42px!important;
    width:392px!important;
    min-width:392px!important;
  }
}


/* ===== ETAPA 260: alineacion definitiva de filas de precios y drag estable ===== */
.catalogo-admin-price-table-presentations .catalogo-admin-price-row,
.catalogo-admin-price-table-presentations .catalogo-admin-price-table-head{
  align-items:center!important;
}
.catalogo-admin-price-table-presentations .catalogo-admin-price-row > *,
.catalogo-admin-price-table-presentations .catalogo-admin-price-table-head > *{
  min-width:0!important;
  margin:0!important;
  align-self:center!important;
  box-sizing:border-box!important;
}
.catalogo-admin-price-table-presentations .catalogo-admin-price-presentation,
.catalogo-admin-price-table-presentations .catalogo-admin-price-type,
.catalogo-admin-price-table-presentations .catalogo-admin-price-money,
.catalogo-admin-price-table-presentations .catalogo-admin-price-controls{
  display:flex!important;
  align-items:center!important;
  min-width:0!important;
  margin:0!important;
}
.catalogo-admin-price-table-presentations .catalogo-admin-price-presentation,
.catalogo-admin-price-table-presentations .catalogo-admin-price-type{
  height:42px!important;
}
.catalogo-admin-price-table-presentations .catalogo-admin-price-presentation select,
.catalogo-admin-price-table-presentations .catalogo-admin-price-type select{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  margin:0!important;
  vertical-align:middle!important;
}
.catalogo-admin-price-table-presentations .catalogo-admin-price-money{
  display:grid!important;
  align-items:center!important;
  margin:0!important;
}
.catalogo-admin-price-table-presentations .catalogo-admin-price-controls{
  justify-content:center!important;
}

/* Durante el ordenamiento la fila real desaparece, igual que Sabores/Surtidos. */
.catalogo-admin-price-table-presentations .catalogo-admin-price-row.is-drag-source{
  display:none!important;
}
.catalogo-admin-price-sort-placeholder{
  border:2px dashed rgba(251,191,36,.9)!important;
  border-radius:14px!important;
  background:linear-gradient(135deg,rgba(251,191,36,.13),rgba(245,158,11,.05))!important;
  box-shadow:inset 0 0 0 1px rgba(251,191,36,.08)!important;
  animation:catalogoAdminPlaceholderPulse .9s ease-in-out infinite alternate!important;
  margin:0!important;
}
.catalogo-admin-price-drag-ghost{
  display:grid!important;
  align-items:center!important;
  padding:9px 10px!important;
  gap:9px!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
  opacity:.96!important;
  transform:scale(1.015) rotate(.25deg)!important;
  border:1px solid #fbbf24!important;
  border-radius:14px!important;
  background:#17120b!important;
  box-shadow:0 22px 52px rgba(0,0,0,.52),0 0 0 2px rgba(251,191,36,.32)!important;
}
.catalogo-admin-price-drag-ghost > *{
  min-width:0!important;
  margin:0!important;
  align-self:center!important;
  box-sizing:border-box!important;
}
.catalogo-admin-price-drag-ghost .catalogo-admin-price-presentation,
.catalogo-admin-price-drag-ghost .catalogo-admin-price-type,
.catalogo-admin-price-drag-ghost .catalogo-admin-price-controls{
  display:flex!important;
  align-items:center!important;
  min-width:0!important;
}
.catalogo-admin-price-drag-ghost .catalogo-admin-price-presentation select,
.catalogo-admin-price-drag-ghost .catalogo-admin-price-type select{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  height:42px!important;
  margin:0!important;
  padding-left:11px!important;
  padding-right:30px!important;
  border-radius:12px!important;
  font:inherit!important;
  color:#fff!important;
  background:#171717!important;
}
.catalogo-admin-price-drag-ghost .catalogo-admin-price-money{
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  align-items:center!important;
  min-width:0!important;
  height:42px!important;
  margin:0!important;
}
.catalogo-admin-price-drag-ghost .catalogo-admin-price-money input{
  min-width:0!important;
  width:100%!important;
}
.catalogo-admin-price-drag-ghost .catalogo-admin-price-controls{
  justify-content:center!important;
}

@media(max-width:820px){
  .catalogo-admin-price-table-presentations .catalogo-admin-price-row{
    min-height:42px!important;
    padding:4px!important;
    row-gap:0!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-presentation,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-type,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-money,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-controls{
    height:34px!important;
    min-height:34px!important;
  }
  .catalogo-admin-price-table-presentations .catalogo-admin-price-presentation select,
  .catalogo-admin-price-table-presentations .catalogo-admin-price-type select{
    height:34px!important;
    line-height:normal!important;
  }
  .catalogo-admin-price-drag-ghost{
    padding:4px!important;
    gap:4px!important;
    border-radius:10px!important;
  }
  .catalogo-admin-price-drag-ghost .catalogo-admin-price-presentation,
  .catalogo-admin-price-drag-ghost .catalogo-admin-price-type,
  .catalogo-admin-price-drag-ghost .catalogo-admin-price-money,
  .catalogo-admin-price-drag-ghost .catalogo-admin-price-controls{
    height:34px!important;
    min-height:34px!important;
  }
  .catalogo-admin-price-drag-ghost .catalogo-admin-price-presentation select,
  .catalogo-admin-price-drag-ghost .catalogo-admin-price-type select{
    height:34px!important;
    padding:0 20px 0 7px!important;
    border-radius:9px!important;
    font-size:10px!important;
  }
  .catalogo-admin-price-drag-ghost .catalogo-admin-price-money{
    grid-template-columns:18px minmax(0,1fr)!important;
    padding:0 6px!important;
  }
  .catalogo-admin-price-drag-ghost .catalogo-admin-price-money input{
    height:32px!important;
    padding:0 2px!important;
    font-size:11px!important;
    text-align:right!important;
  }
}

/* ===== ETAPA 261: drag de precios conserva exactamente la estructura de la fila ===== */
.catalogo-admin-price-drag-layer{
  position:fixed!important;
  inset:0!important;
  z-index:10050!important;
  width:100vw!important;
  height:100vh!important;
  min-width:0!important;
  pointer-events:none!important;
  overflow:visible!important;
  display:block!important;
  background:transparent!important;
}

/* La fila flotante mantiene la misma grilla de la fila real. Solo cambia su
   tratamiento visual para comunicar que se esta ordenando. */
.catalogo-admin-price-drag-layer .catalogo-admin-price-drag-ghost{
  position:fixed!important;
  margin:0!important;
  pointer-events:none!important;
  overflow:hidden!important;
  align-items:center!important;
  opacity:.98!important;
  transform:scale(1.012)!important;
  border:1px solid rgba(251,191,36,.95)!important;
  box-shadow:0 18px 42px rgba(0,0,0,.48),0 0 0 2px rgba(251,191,36,.22)!important;
  background:#151515!important;
}

/* No permitimos que las reglas antiguas del ghost cambien la geometria interna. */
.catalogo-admin-price-drag-layer .catalogo-admin-price-drag-ghost > *{
  width:auto!important;
  height:auto!important;
  min-width:0!important;
  margin:0!important;
  align-self:center!important;
  box-sizing:border-box!important;
}

.catalogo-admin-price-drag-layer .catalogo-admin-price-drag-ghost .catalogo-admin-price-presentation,
.catalogo-admin-price-drag-layer .catalogo-admin-price-drag-ghost .catalogo-admin-price-type,
.catalogo-admin-price-drag-layer .catalogo-admin-price-drag-ghost .catalogo-admin-price-money,
.catalogo-admin-price-drag-layer .catalogo-admin-price-drag-ghost .catalogo-admin-price-controls{
  width:100%!important;
  min-width:0!important;
  align-self:center!important;
}

@media(max-width:820px){
  .catalogo-admin-price-drag-layer .catalogo-admin-price-drag-ghost{
    transform:scale(1.008)!important;
  }
}

/* ==========================================================================
   ETAPA 270 - Tipos de precio: interfaz definitiva escritorio + movil
   Una unica implementacion responsive para evitar reglas historicas en conflicto.
   ========================================================================== */

#catalogo-admin-types-modal .catalogo-admin-types-panel{
  width:min(1080px,calc(100vw - 32px));
  max-height:min(86vh,760px);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
  border-radius:28px;
  background:linear-gradient(180deg,#111 0%,#0d0d0d 100%);
  box-shadow:0 28px 90px rgba(0,0,0,.52);
}
#catalogo-admin-types-modal .catalogo-admin-types-header{
  flex:0 0 auto;
}
#catalogo-admin-types-modal .catalogo-admin-types-content{
  min-height:0;
  display:flex;
  flex-direction:column;
  gap:14px;
  overflow:hidden;
}
#catalogo-admin-types-modal .catalogo-admin-types-toolbar{
  flex:0 0 auto;
  display:flex;
  justify-content:flex-end;
}
#catalogo-admin-types-modal #admin-price-type-new{
  min-height:44px;
  border-radius:14px;
}
#catalogo-admin-types-modal .catalogo-admin-types-list{
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:1px 5px 8px 1px;
  scrollbar-width:thin;
  scrollbar-color:rgba(255,179,71,.42) transparent;
}
#catalogo-admin-types-modal .catalogo-admin-types-list::-webkit-scrollbar{width:6px}
#catalogo-admin-types-modal .catalogo-admin-types-list::-webkit-scrollbar-thumb{background:rgba(255,179,71,.42);border-radius:999px}

/* Escritorio: filas compactas */
#catalogo-admin-types-modal .catalogo-admin-type-item{
  position:relative;
  display:grid;
  grid-template-columns:44px minmax(0,1fr) auto auto;
  grid-template-areas:"drag info state actions";
  gap:12px;
  align-items:center;
  min-height:72px;
  margin:0;
  padding:10px 12px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:16px;
  background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.025));
  box-sizing:border-box;
  transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease;
}
#catalogo-admin-types-modal .catalogo-admin-type-item:hover{
  border-color:rgba(255,179,71,.23);
  background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.035));
}
#catalogo-admin-types-modal .catalogo-admin-type-drag-handle{
  grid-area:drag;
  width:38px;
  height:42px;
  min-width:38px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.10);
  border-radius:11px;
  background:rgba(255,255,255,.035);
  cursor:grab;
  touch-action:none;
}
#catalogo-admin-types-modal .catalogo-admin-type-drag-handle:active{cursor:grabbing}
#catalogo-admin-types-modal .catalogo-admin-type-drag-handle span{
  width:16px;
  height:20px;
  display:block;
  opacity:.72;
  background-image:radial-gradient(circle,rgba(255,255,255,.72) 1.6px,transparent 1.9px);
  background-size:8px 7px;
  background-position:0 0;
}
#catalogo-admin-types-modal .catalogo-admin-type-view{grid-area:info;min-width:0}
#catalogo-admin-types-modal .catalogo-admin-type-title-line{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  margin-bottom:4px;
}
#catalogo-admin-types-modal .catalogo-admin-type-title-line strong{
  min-width:0;
  margin:0;
  color:#fff;
  font-size:15px;
  line-height:1.25;
}
#catalogo-admin-types-modal .catalogo-admin-type-count{
  flex:0 0 auto;
  padding:5px 8px;
  border:1px solid rgba(255,179,71,.36);
  border-radius:999px;
  background:rgba(255,179,71,.08);
  color:#ffc56f;
  font-size:10px;
  font-weight:800;
  line-height:1;
  white-space:nowrap;
}
#catalogo-admin-types-modal .catalogo-admin-type-view small{
  display:block;
  color:rgba(255,255,255,.62);
  font-size:12px;
  line-height:1.4;
  white-space:normal;
  overflow-wrap:anywhere;
}
#catalogo-admin-types-modal .catalogo-admin-type-state{grid-area:state}
#catalogo-admin-types-modal .catalogo-admin-type-actions{
  grid-area:actions;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
}
#catalogo-admin-types-modal .catalogo-admin-type-actions button{
  min-height:40px;
  border-radius:11px;
}
#catalogo-admin-types-modal .catalogo-admin-type-delete-icon{
  width:40px;
  min-width:40px;
  height:40px;
  padding:0;
  display:grid;
  place-items:center;
}
#catalogo-admin-types-modal .catalogo-admin-type-delete-icon svg{width:18px;height:18px}
#catalogo-admin-types-modal .catalogo-admin-type-edit-fields{
  grid-area:info;
  display:grid;
  grid-template-columns:minmax(160px,.8fr) minmax(220px,1.4fr);
  gap:9px;
  min-width:0;
}
#catalogo-admin-types-modal .catalogo-admin-type-edit-fields[hidden],
#catalogo-admin-types-modal .catalogo-admin-type-view[hidden],
#catalogo-admin-types-modal [data-price-type-save-row][hidden],
#catalogo-admin-types-modal [data-price-type-cancel-row][hidden]{display:none!important}
#catalogo-admin-types-modal .catalogo-admin-type-edit-fields input{
  width:100%;
  min-width:0;
  height:42px;
  border-radius:11px;
}
#catalogo-admin-types-modal .catalogo-admin-type-item.is-editing{
  border-color:rgba(255,179,71,.48);
  box-shadow:0 0 0 1px rgba(255,179,71,.10) inset;
}
#catalogo-admin-types-modal .catalogo-admin-type-sort-placeholder{
  flex:0 0 auto;
  border:1px dashed rgba(255,179,71,.75);
  border-radius:16px;
  background:rgba(255,179,71,.07);
}
#catalogo-admin-types-modal .catalogo-admin-type-item.is-drag-source{opacity:.12}
.catalogo-admin-type-drag-ghost{
  position:fixed!important;
  z-index:5000!important;
  pointer-events:none!important;
  margin:0!important;
  opacity:.96!important;
  border-color:rgba(255,179,71,.70)!important;
  box-shadow:0 22px 55px rgba(0,0,0,.50),0 0 0 1px rgba(255,179,71,.12) inset!important;
  background:#181512!important;
}

@media(max-width:760px){
  /* ETAPA 271: en movil se conserva la misma interfaz de filas del escritorio.
     El ancho util se mantiene legible mediante scroll horizontal local. */
  #catalogo-admin-types-modal .catalogo-admin-types-panel{
    width:calc(100vw - 20px);
    max-width:430px;
    height:min(90dvh,760px);
    max-height:none;
    border-radius:20px;
  }
  #catalogo-admin-types-modal .catalogo-admin-types-header{padding:18px 16px 14px}
  #catalogo-admin-types-modal .catalogo-admin-types-header h2{font-size:24px;line-height:1.1}
  #catalogo-admin-types-modal .catalogo-admin-types-header p{margin-top:5px;font-size:12px;line-height:1.35}
  #catalogo-admin-types-modal .catalogo-admin-types-content{
    flex:1 1 auto;min-height:0;padding:12px 12px 14px;gap:10px;overflow:hidden;
  }
  #catalogo-admin-types-modal .catalogo-admin-types-toolbar{justify-content:stretch;flex:0 0 auto}
  #catalogo-admin-types-modal #admin-price-type-new{width:100%;min-height:44px}

  /* Dos scrolls independientes: vertical para recorrer tipos y horizontal solo para las filas. */
  #catalogo-admin-types-modal .catalogo-admin-types-list{
    flex:1 1 auto;min-height:0;display:block;overflow:auto;
    padding:1px 3px 10px 1px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
    scrollbar-width:thin;scrollbar-color:rgba(255,179,71,.42) transparent;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item{
    display:grid;
    grid-template-columns:38px minmax(250px,1fr) auto auto;
    grid-template-areas:"drag info state actions";
    gap:9px;align-items:center;
    width:max(660px,100%);min-width:660px;min-height:66px;height:auto;
    margin:0 0 8px;padding:8px 10px;border-radius:14px;overflow:visible;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-drag-handle{
    grid-area:drag;width:34px;min-width:34px;height:38px;min-height:38px;
    align-self:center;justify-self:center;border-radius:10px;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-drag-handle span{width:16px;height:20px}
  #catalogo-admin-types-modal .catalogo-admin-type-view{grid-area:info;min-width:0;width:auto;overflow:visible}
  #catalogo-admin-types-modal .catalogo-admin-type-title-line{
    display:flex;align-items:center;gap:8px;min-width:0;margin:0 0 3px;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-title-line strong{font-size:14px;white-space:nowrap}
  #catalogo-admin-types-modal .catalogo-admin-type-count{font-size:9px;padding:4px 7px}
  #catalogo-admin-types-modal .catalogo-admin-type-view small{
    display:block;font-size:11px;line-height:1.35;white-space:normal;overflow:visible;overflow-wrap:anywhere;
    height:auto;max-height:none;-webkit-line-clamp:unset;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-state{grid-area:state}
  #catalogo-admin-types-modal .catalogo-admin-type-actions{
    grid-area:actions;display:flex;align-items:center;justify-content:flex-end;gap:7px;
    width:auto;padding:0;border:0;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-actions button{height:38px;min-height:38px;border-radius:10px}
  #catalogo-admin-types-modal [data-price-type-edit]{min-width:78px;padding:0 13px}
  #catalogo-admin-types-modal .catalogo-admin-type-delete-icon{width:38px;min-width:38px;height:38px}

  /* Edicion: misma fila, sin convertirla en tarjeta. */
  #catalogo-admin-types-modal.is-editing-mode .catalogo-admin-types-toolbar{display:none}
  #catalogo-admin-types-modal .catalogo-admin-types-list.is-editing-mode > .catalogo-admin-type-item:not(.is-editing){display:none}
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing{
    grid-template-columns:38px minmax(360px,1fr) auto auto;
    grid-template-areas:"drag info state actions";
    width:max(720px,100%);min-width:720px;gap:9px;padding:9px 10px;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-drag-handle{visibility:hidden}
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-view{display:none!important}
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-edit-fields{
    grid-area:info;display:grid!important;grid-template-columns:150px minmax(200px,1fr);gap:8px;min-width:0;width:auto;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-edit-fields input{height:40px}
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-state{grid-area:state;display:flex;align-items:center}
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-actions{grid-area:actions;display:flex;gap:7px}
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing [data-price-type-edit],
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-delete-icon{display:none!important}
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing [data-price-type-save-row],
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing [data-price-type-cancel-row]{
    display:inline-flex!important;align-items:center;justify-content:center;min-width:82px;height:38px;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing [data-price-type-save-row]{background:linear-gradient(135deg,#ffb347,#f59e0b);color:#17110a}

}


/* ==========================================================================
   ETAPA 273 - Tipos de precio: arrastre idéntico a Sabores/Surtidos
   La copia flotante se mantiene dentro del mismo modal para conservar exactamente
   la geometría y los estilos de la fila real, sin redefinir su grid.
   ========================================================================== */
#catalogo-admin-types-modal .catalogo-admin-type-item.is-drag-source{
  display:none!important;
}
#catalogo-admin-types-modal .catalogo-admin-type-sort-placeholder{
  flex:0 0 auto;
  width:100%;
  min-width:0;
  margin:0;
}
#catalogo-admin-types-modal .catalogo-admin-type-item.catalogo-admin-type-drag-ghost{
  position:fixed!important;
  z-index:100000!important;
  margin:0!important;
  pointer-events:none!important;
  opacity:.96!important;
  transform:scale(1.015) rotate(.25deg)!important;
  transform-origin:center!important;
  border-color:#fbbf24!important;
  background:#17120b!important;
  box-shadow:0 22px 52px rgba(0,0,0,.52),0 0 0 2px rgba(251,191,36,.32)!important;
  transition:none!important;
  overflow:visible!important;
}
#catalogo-admin-types-modal .catalogo-admin-type-item.catalogo-admin-type-drag-ghost .catalogo-admin-type-drag-handle{
  border-color:#fbbf24!important;
  background:rgba(251,191,36,.16)!important;
  transform:scale(1.04)!important;
}
#catalogo-admin-types-modal .catalogo-admin-type-item.catalogo-admin-type-drag-ghost .catalogo-admin-type-state,
#catalogo-admin-types-modal .catalogo-admin-type-item.catalogo-admin-type-drag-ghost [data-price-type-save-row],
#catalogo-admin-types-modal .catalogo-admin-type-item.catalogo-admin-type-drag-ghost [data-price-type-cancel-row]{
  display:none!important;
}
@media(prefers-reduced-motion:reduce){
  #catalogo-admin-types-modal .catalogo-admin-type-item.catalogo-admin-type-drag-ghost{transform:none!important}
}


/* ==========================================================================\n   ETAPA 277 - Tipos de precio: tarjetas móviles + edición enfocada\n   Escritorio conserva filas. Móvil usa tarjetas de altura automática y una\n   vista de edición tipo formulario, ocultando temporalmente los demás ítems.\n   ========================================================================== */
#catalogo-admin-types-modal .catalogo-admin-type-edit-field{
  min-width:0;
}
#catalogo-admin-types-modal .catalogo-admin-type-edit-field > span{
  display:none;
}

@media(max-width:760px){
  #catalogo-admin-types-modal .catalogo-admin-types-panel{
    width:calc(100vw - 18px);
    max-width:430px;
    height:min(92dvh,780px);
    border-radius:22px;
  }
  #catalogo-admin-types-modal .catalogo-admin-types-content{
    padding:12px 12px 14px;
    gap:11px;
    overflow:hidden;
  }
  #catalogo-admin-types-modal .catalogo-admin-types-list{
    flex:1 1 auto;
    min-height:0;
    display:flex;
    flex-direction:column;
    gap:10px;
    overflow-y:auto;
    overflow-x:hidden;
    padding:1px 4px 10px 1px;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
  }

  /* Tarjeta móvil estable: sin anchos mínimos ni scroll horizontal por ítem. */
  #catalogo-admin-types-modal .catalogo-admin-type-item{
    display:grid;
    grid-template-columns:42px minmax(0,1fr) auto;
    grid-template-areas:
      "drag info info"
      "drag state actions";
    column-gap:10px;
    row-gap:10px;
    align-items:start;
    width:100%;
    min-width:0;
    min-height:0;
    height:auto;
    margin:0;
    padding:12px;
    border-radius:16px;
    overflow:visible;
    box-sizing:border-box;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-drag-handle{
    grid-area:drag;
    width:38px;
    min-width:38px;
    height:44px;
    min-height:44px;
    align-self:start;
    justify-self:start;
    border-radius:11px;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-view{
    grid-area:info;
    min-width:0;
    width:100%;
    overflow:visible;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-title-line{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:8px;
    margin:0 0 6px;
    min-width:0;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-title-line strong{
    min-width:0;
    font-size:15px;
    line-height:1.25;
    white-space:normal;
    overflow-wrap:anywhere;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-count{
    flex:0 0 auto;
    margin-top:0;
    font-size:9px;
    padding:5px 7px;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-view small{
    display:block;
    width:100%;
    height:auto;
    max-height:none;
    margin:0;
    color:rgba(255,255,255,.66);
    font-size:11.5px;
    line-height:1.45;
    white-space:normal;
    overflow:visible;
    overflow-wrap:anywhere;
    -webkit-line-clamp:unset;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-state{
    grid-area:state;
    align-self:center;
    justify-self:start;
    display:flex!important;
    min-height:38px;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-actions{
    grid-area:actions;
    align-self:center;
    justify-self:end;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:7px;
    width:auto;
    padding:0;
    border:0;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-actions button{
    min-height:38px;
    height:38px;
    border-radius:10px;
  }
  #catalogo-admin-types-modal [data-price-type-edit]{
    min-width:82px;
    padding:0 14px;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-delete-icon{
    width:38px;
    min-width:38px;
    height:38px;
  }

  /* Edición enfocada: una sola tarjeta se convierte en formulario móvil. */
  #catalogo-admin-types-modal.is-editing-mode .catalogo-admin-types-toolbar{
    display:none!important;
  }
  #catalogo-admin-types-modal .catalogo-admin-types-list.is-editing-mode{
    overflow-x:hidden;
  }
  #catalogo-admin-types-modal .catalogo-admin-types-list.is-editing-mode > .catalogo-admin-type-item:not(.is-editing){
    display:none!important;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    grid-template-areas:
      "info"
      "state"
      "actions";
    gap:14px;
    width:100%;
    min-width:0;
    min-height:0;
    height:auto;
    padding:16px;
    border-radius:18px;
    border-color:rgba(255,179,71,.52);
    background:linear-gradient(180deg,rgba(255,179,71,.07),rgba(255,255,255,.025));
    box-shadow:0 16px 42px rgba(0,0,0,.25),0 0 0 1px rgba(255,179,71,.10) inset;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-drag-handle{
    display:none!important;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-view{
    display:none!important;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-edit-fields{
    grid-area:info;
    display:grid!important;
    grid-template-columns:minmax(0,1fr);
    gap:12px;
    min-width:0;
    width:100%;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-edit-field{
    display:grid;
    gap:6px;
    min-width:0;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-edit-field > span{
    display:block;
    color:rgba(255,255,255,.72);
    font-size:11px;
    font-weight:800;
    letter-spacing:.02em;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-edit-fields input{
    width:100%;
    min-width:0;
    height:44px;
    padding:0 12px;
    border-radius:12px;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-state{
    grid-area:state;
    display:flex!important;
    align-items:center;
    justify-content:flex-start;
    min-height:40px;
    padding-top:2px;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-actions{
    grid-area:actions;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:9px;
    width:100%;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing [data-price-type-edit],
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-delete-icon{
    display:none!important;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing [data-price-type-save-row],
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing [data-price-type-cancel-row]{
    display:inline-flex!important;
    align-items:center;
    justify-content:center;
    width:100%;
    min-width:0;
    height:44px;
    min-height:44px;
    border-radius:12px;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing [data-price-type-save-row]{
    background:linear-gradient(135deg,#ffb347,#f59e0b);
    color:#17110a;
    font-weight:900;
  }

  /* En móvil, el fantasma adopta dimensiones de tarjeta y no se deforma. */
  #catalogo-admin-types-modal .catalogo-admin-type-item.catalogo-admin-type-drag-ghost{
    width:min(390px,calc(100vw - 42px))!important;
    min-width:0!important;
    height:auto!important;
  }
}

/* ========================================================================== 
   ETAPA 278 - Tipos de precio: tarjetas moviles estables sin superposicion
   En movil se evita el grid compartido con escritorio. Cada tarjeta usa flujo
   normal, reserva un pie propio para estado/acciones y crece con su descripcion.
   ========================================================================== */
@media(max-width:760px){
  #catalogo-admin-types-modal .catalogo-admin-types-list{
    display:flex!important;
    flex-direction:column!important;
    gap:12px!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding:2px 4px 14px 2px!important;
  }

  #catalogo-admin-types-modal .catalogo-admin-type-item{
    position:relative!important;
    display:block!important;
    width:100%!important;
    min-width:0!important;
    min-height:118px!important;
    height:auto!important;
    margin:0!important;
    padding:14px 12px 58px 62px!important;
    border-radius:17px!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }

  #catalogo-admin-types-modal .catalogo-admin-type-drag-handle{
    position:absolute!important;
    left:12px!important;
    top:14px!important;
    width:38px!important;
    min-width:38px!important;
    height:44px!important;
    min-height:44px!important;
    margin:0!important;
    align-self:auto!important;
    justify-self:auto!important;
  }

  #catalogo-admin-types-modal .catalogo-admin-type-view{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-title-line{
    display:flex!important;
    align-items:flex-start!important;
    justify-content:space-between!important;
    gap:10px!important;
    width:100%!important;
    min-width:0!important;
    margin:0 0 7px!important;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-title-line strong{
    flex:1 1 auto!important;
    min-width:0!important;
    margin:0!important;
    font-size:15px!important;
    line-height:1.25!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-count{
    flex:0 0 auto!important;
    margin:0!important;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-view small{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    height:auto!important;
    max-height:none!important;
    margin:0!important;
    font-size:11.5px!important;
    line-height:1.45!important;
    white-space:normal!important;
    overflow:visible!important;
    overflow-wrap:anywhere!important;
    -webkit-line-clamp:unset!important;
  }

  /* Pie propio de cada tarjeta: nunca participa en el alto del texto. */
  #catalogo-admin-types-modal .catalogo-admin-type-state{
    position:absolute!important;
    left:62px!important;
    bottom:12px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    width:auto!important;
    min-height:38px!important;
    margin:0!important;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-actions{
    position:absolute!important;
    right:12px!important;
    bottom:12px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:7px!important;
    width:auto!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-actions button{
    height:38px!important;
    min-height:38px!important;
    margin:0!important;
  }

  /* El modo edicion deja de ser tarjeta de lectura y pasa a formulario enfocado. */
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing{
    display:block!important;
    min-height:0!important;
    height:auto!important;
    padding:16px!important;
    overflow:visible!important;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-drag-handle,
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-view{
    display:none!important;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-edit-fields{
    position:static!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:12px!important;
    width:100%!important;
    min-width:0!important;
    margin:0 0 14px!important;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-state{
    position:static!important;
    display:flex!important;
    width:100%!important;
    min-height:40px!important;
    margin:0 0 12px!important;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-actions{
    position:static!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:9px!important;
    width:100%!important;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing [data-price-type-save-row],
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing [data-price-type-cancel-row]{
    width:100%!important;
    height:44px!important;
    min-height:44px!important;
  }

  /* El clon de arrastre conserva exactamente el aspecto de una tarjeta movil. */
  #catalogo-admin-types-modal .catalogo-admin-type-item.catalogo-admin-type-drag-ghost{
    display:block!important;
    width:min(390px,calc(100vw - 42px))!important;
    min-width:0!important;
    min-height:118px!important;
    height:auto!important;
    padding:14px 12px 58px 62px!important;
    overflow:hidden!important;
  }
}


/* ==========================================================================
   ETAPA 279 - Tipos de precio: footer de edición móvil siempre visible
   ========================================================================== */
@media(max-width:760px){
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:14px!important;
    min-height:0!important;
    height:auto!important;
    padding:16px!important;
    overflow:visible!important;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-edit-fields{
    order:1!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:12px!important;
    width:100%!important;
    margin:0!important;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-state{
    order:2!important;
    position:static!important;
    display:flex!important;
    width:100%!important;
    min-height:40px!important;
    margin:0!important;
    padding:0!important;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-actions{
    order:3!important;
    position:static!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:10px!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding-top:2px!important;
    visibility:visible!important;
    opacity:1!important;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing [data-price-type-save-row],
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing [data-price-type-cancel-row]{
    display:inline-flex!important;
    visibility:visible!important;
    opacity:1!important;
    width:100%!important;
    min-width:0!important;
    height:46px!important;
    min-height:46px!important;
    margin:0!important;
    border-radius:12px!important;
    align-items:center!important;
    justify-content:center!important;
    font-weight:900!important;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing [data-price-type-save-row]{
    background:linear-gradient(135deg,#ffb347,#f59e0b)!important;
    color:#17110a!important;
    border-color:transparent!important;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing [data-price-type-cancel-row]{
    background:#2b2b2b!important;
    color:#fff!important;
    border:1px solid rgba(255,255,255,.12)!important;
  }
}


/* ==========================================================================
   ETAPA 280 - Tipos de precio: acciones móviles de edición independientes
   Los botones Guardar/Cancelar móviles ya no dependen de los botones hidden
   del layout de escritorio. Se renderizan en un footer propio y estable.
   ========================================================================== */
#catalogo-admin-types-modal .catalogo-admin-type-mobile-edit-actions{display:none}
@media(max-width:760px){
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-actions{
    display:none!important;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-mobile-edit-actions{
    display:grid!important;
    grid-template-columns:minmax(0,1fr);
    gap:10px;
    width:100%;
    margin:2px 0 0;
    padding:0;
    order:3;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-mobile-edit-actions button{
    width:100%;
    min-width:0;
    min-height:46px;
    height:46px;
    border-radius:12px;
    border:1px solid rgba(255,255,255,.12);
    background:#2b2b2b;
    color:#fff;
    font:inherit;
    font-weight:900;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-mobile-edit-actions .primary{
    background:linear-gradient(135deg,#ffb347,#f59e0b);
    color:#17110a;
    border-color:transparent;
    box-shadow:0 10px 26px rgba(245,158,11,.18);
  }
}

/* ========================================================================== 
   ETAPA 281 - Tipos de precio: aprovechar toda la altura movil
   Corrige el max-height historico de .catalogo-admin-types-list que seguia
   limitando la lista y generando espacio negro sin uso en el modal.
   ========================================================================== */
@media(max-width:760px){
  #catalogo-admin-types-modal .catalogo-admin-types-panel{
    height:calc(100dvh - 16px)!important;
    max-height:calc(100dvh - 16px)!important;
    min-height:0!important;
    top:50%!important;
  }

  #catalogo-admin-types-modal .catalogo-admin-types-header{
    flex:0 0 auto!important;
    padding:16px 16px 13px!important;
  }

  #catalogo-admin-types-modal .catalogo-admin-types-content{
    flex:1 1 0!important;
    min-height:0!important;
    height:auto!important;
    padding:10px 12px 12px!important;
    gap:9px!important;
    overflow:hidden!important;
  }

  #catalogo-admin-types-modal .catalogo-admin-types-toolbar{
    flex:0 0 auto!important;
    margin:0!important;
  }

  #catalogo-admin-types-modal .catalogo-admin-types-list{
    flex:1 1 0!important;
    min-height:0!important;
    height:auto!important;
    max-height:none!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding:1px 4px 8px 1px!important;
    gap:10px!important;
    align-content:flex-start!important;
    justify-content:flex-start!important;
  }

  #catalogo-admin-types-modal .catalogo-admin-type-item{
    flex:0 0 auto!important;
  }

  /* En edición, el formulario y sus acciones quedan juntos arriba. */
  #catalogo-admin-types-modal .catalogo-admin-types-list.is-editing-mode{
    flex:1 1 0!important;
    max-height:none!important;
    overflow-y:auto!important;
    justify-content:flex-start!important;
    padding-bottom:10px!important;
  }

  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing{
    flex:0 0 auto!important;
    margin:0!important;
    gap:11px!important;
    padding:14px!important;
  }

  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-edit-fields{
    gap:10px!important;
    margin:0!important;
  }

  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-state{
    min-height:34px!important;
    margin:0!important;
    padding:0!important;
  }

  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-mobile-edit-actions{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:9px!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
    order:3!important;
  }

  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-mobile-edit-actions button{
    min-height:44px!important;
    height:44px!important;
  }
}


/* ========================================================================== 
   ETAPA 282 - Tipos de precio: registro enfocado en movil
   Al registrar un nuevo tipo se oculta la lista real (aunque reglas historicas
   usen display:flex!important) y el formulario aprovecha el espacio disponible.
   ========================================================================== */
@media(max-width:760px){
  #catalogo-admin-types-modal #catalogo-admin-types-list[hidden]{
    display:none!important;
  }

  #catalogo-admin-types-modal.is-creating-mode .catalogo-admin-types-toolbar{
    display:none!important;
  }

  #catalogo-admin-types-modal.is-creating-mode .catalogo-admin-types-content{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
  }

  #catalogo-admin-types-modal.is-creating-mode .catalogo-admin-types-form{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:12px!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:15px!important;
    border-radius:18px!important;
    border:1px solid rgba(255,179,71,.5)!important;
    background:linear-gradient(180deg,rgba(255,179,71,.07),rgba(255,255,255,.025))!important;
    box-shadow:0 16px 42px rgba(0,0,0,.22),0 0 0 1px rgba(255,179,71,.08) inset!important;
  }

  #catalogo-admin-types-modal.is-creating-mode .catalogo-admin-types-form label{
    display:grid!important;
    gap:6px!important;
    min-width:0!important;
    font-size:11px!important;
    line-height:1.2!important;
  }

  #catalogo-admin-types-modal.is-creating-mode .catalogo-admin-types-form input[type="text"]{
    width:100%!important;
    min-width:0!important;
    height:44px!important;
    padding:0 12px!important;
    border-radius:12px!important;
  }

  #catalogo-admin-types-modal.is-creating-mode .catalogo-admin-types-form-actions{
    grid-column:1!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:9px!important;
    width:100%!important;
    margin-top:2px!important;
  }

  #catalogo-admin-types-modal.is-creating-mode .catalogo-admin-types-form-actions button{
    width:100%!important;
    min-width:0!important;
    min-height:44px!important;
    height:44px!important;
    border-radius:12px!important;
  }
}

/* ========================================================================== 
   ETAPA 283 - Tipos de precio: formularios estructurados y estados excluyentes
   Escritorio: registro y edición con nombre arriba + descripción multilínea.
   Móvil: conserva el formulario enfocado y usa textarea para la descripción.
   ========================================================================== */
#catalogo-admin-types-modal .catalogo-admin-types-form textarea,
#catalogo-admin-types-modal .catalogo-admin-type-edit-fields textarea{
  width:100%;
  min-width:0;
  min-height:84px;
  resize:vertical;
  border:1px solid rgba(255,255,255,.12);
  border-radius:12px;
  background:#181818;
  color:#fff;
  padding:11px 13px;
  font:inherit;
  line-height:1.4;
  outline:none;
  box-sizing:border-box;
}
#catalogo-admin-types-modal .catalogo-admin-types-form textarea:focus,
#catalogo-admin-types-modal .catalogo-admin-type-edit-fields textarea:focus{
  border-color:#ffb347;
  box-shadow:0 0 0 3px rgba(255,179,71,.10);
}

@media(min-width:761px){
  /* Registro: formulario claro de dos niveles. */
  #catalogo-admin-types-modal .catalogo-admin-types-form:not([hidden]){
    display:grid;
    grid-template-columns:minmax(280px,1fr) auto;
    grid-template-areas:
      "name actions"
      "description description";
    align-items:end;
    gap:13px 16px;
    padding:18px 20px;
    animation:catalogoTypeFormOpen .22s ease both;
  }
  #catalogo-admin-types-modal .catalogo-admin-types-form:not([hidden]) > label:first-of-type{grid-area:name}
  #catalogo-admin-types-modal .catalogo-admin-types-form:not([hidden]) > label:nth-of-type(2){grid-area:description}
  #catalogo-admin-types-modal .catalogo-admin-types-form:not([hidden]) .catalogo-admin-types-form-actions{
    grid-area:actions;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:9px;
    margin:0;
  }
  #catalogo-admin-types-modal .catalogo-admin-types-form textarea{
    min-height:78px;
    max-height:150px;
  }

  /* Edición inline: la fila se expande y los campos pasan a dos niveles. */
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing{
    align-items:start;
    padding-top:14px;
    padding-bottom:14px;
    animation:catalogoTypeRowExpand .22s ease both;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-edit-fields{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:10px!important;
    min-width:0;
    width:100%;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-edit-field{
    display:grid;
    gap:5px;
    min-width:0;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-edit-field > span{
    display:block;
    color:rgba(255,255,255,.62);
    font-size:10px;
    font-weight:800;
    letter-spacing:.04em;
    text-transform:uppercase;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-edit-fields textarea{
    min-height:70px;
    max-height:132px;
  }
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-state,
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-actions{
    align-self:start;
    margin-top:20px!important;
  }
}

@media(max-width:760px){
  #catalogo-admin-types-modal.is-creating-mode .catalogo-admin-types-form textarea,
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-edit-fields textarea{
    width:100%!important;
    min-width:0!important;
    min-height:92px!important;
    max-height:180px!important;
    resize:vertical!important;
    padding:11px 12px!important;
    border-radius:12px!important;
  }
}

@keyframes catalogoTypeFormOpen{
  from{opacity:0;transform:translateY(-7px) scale(.995)}
  to{opacity:1;transform:translateY(0) scale(1)}
}
@keyframes catalogoTypeRowExpand{
  from{opacity:.82;transform:scaleY(.985);transform-origin:top}
  to{opacity:1;transform:scaleY(1);transform-origin:top}
}
@media(prefers-reduced-motion:reduce){
  #catalogo-admin-types-modal .catalogo-admin-types-form:not([hidden]),
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing{animation:none!important}
}

/* ========================================================================== 
   ETAPA 284 - Tipos de precio: edición de escritorio dentro del flujo real
   La fila activa crece físicamente y empuja a las demás, evitando cualquier
   superposición del textarea sobre los siguientes tipos de precio.
   ========================================================================== */
@media(min-width:761px){
  #catalogo-admin-types-modal .catalogo-admin-types-list{
    align-items:stretch;
  }

  #catalogo-admin-types-modal .catalogo-admin-type-item{
    flex:0 0 auto;
  }

  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing{
    position:relative!important;
    display:grid!important;
    grid-template-columns:44px minmax(0,1fr) auto auto!important;
    grid-template-areas:"drag info state actions"!important;
    grid-template-rows:auto!important;
    column-gap:12px!important;
    row-gap:0!important;
    align-items:start!important;
    width:100%!important;
    min-width:0!important;
    min-height:164px!important;
    height:auto!important;
    margin:0!important;
    padding:14px 12px!important;
    overflow:visible!important;
    box-sizing:border-box!important;
    transition:min-height .22s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease!important;
  }

  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-drag-handle{
    grid-area:drag!important;
    align-self:start!important;
    visibility:hidden!important;
  }

  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-view{
    display:none!important;
  }

  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-edit-fields{
    grid-area:info!important;
    position:static!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;
    gap:10px!important;
    align-self:start!important;
    width:100%!important;
    min-width:0!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
  }

  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-edit-field{
    position:static!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;
    gap:5px!important;
    width:100%!important;
    min-width:0!important;
    height:auto!important;
    margin:0!important;
  }

  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-edit-fields input,
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-edit-fields textarea{
    position:static!important;
    display:block!important;
    width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }

  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-edit-fields textarea{
    min-height:72px!important;
    height:72px!important;
    max-height:120px!important;
    resize:vertical!important;
    overflow:auto!important;
  }

  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-state{
    grid-area:state!important;
    position:static!important;
    align-self:start!important;
    margin:20px 0 0!important;
  }

  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-actions{
    grid-area:actions!important;
    position:static!important;
    align-self:start!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:8px!important;
    width:auto!important;
    margin:20px 0 0!important;
    padding:0!important;
  }

  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing .catalogo-admin-type-mobile-edit-actions{
    display:none!important;
  }

  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing [data-price-type-save-row],
  #catalogo-admin-types-modal .catalogo-admin-type-item.is-editing [data-price-type-cancel-row]{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
}

/* ==========================================================================\n   ETAPA 288 - Ordenar catalogo: arrastre moderno y estable en moviles\n   Reutiliza el patron visual validado en Presentaciones/Tipos de precio.\n   ========================================================================== */
@media(max-width:700px){
  .catalog-order-body{
    padding:16px!important;
  }
  .catalog-order-help{
    margin:0 0 12px!important;
    line-height:1.35;
  }
  .catalog-order-list{
    display:grid!important;
    gap:10px!important;
  }
  .catalog-order-item{
    width:100%!important;
    min-width:0!important;
    min-height:64px!important;
    box-sizing:border-box!important;
    display:grid!important;
    grid-template-columns:38px 48px minmax(0,1fr)!important;
    align-items:center!important;
    gap:10px!important;
    padding:8px 10px!important;
    border-radius:15px!important;
    cursor:default!important;
    position:relative;
    transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease;
  }
  .catalog-order-item strong{
    min-width:0;
    display:block;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    align-self:center;
  }
  .catalog-order-thumb{
    width:46px!important;
    height:46px!important;
    border-radius:11px!important;
    align-self:center!important;
  }
  .catalog-order-handle{
    width:34px!important;
    height:38px!important;
    min-width:34px!important;
    min-height:38px!important;
    display:grid!important;
    place-items:center!important;
    align-self:center!important;
    justify-self:start!important;
    border:1px solid rgba(255,179,71,.20)!important;
    border-radius:10px!important;
    background:rgba(255,179,71,.07)!important;
    color:#ffb347!important;
    cursor:grab!important;
    touch-action:none!important;
    user-select:none!important;
    overflow:hidden;
    font-size:0!important;
    line-height:0!important;
    transition:border-color .16s ease,background .16s ease,transform .16s ease,box-shadow .16s ease;
  }
  .catalog-order-handle:active{
    cursor:grabbing!important;
    transform:scale(.96);
  }
  .catalog-order-handle i{
    width:15px;
    height:20px;
    display:block;
    pointer-events:none;
    background-image:radial-gradient(circle,#ffb347 1.7px,transparent 1.9px);
    background-size:6.5px 6.5px;
    background-position:1px 1px;
  }
  .catalog-order-mobile-actions{
    display:none!important;
  }
  .catalog-order-item.is-drag-source{
    display:none!important;
  }
  .catalog-order-sort-placeholder{
    width:100%;
    min-width:0;
    margin:0;
    box-sizing:border-box;
    border:1px dashed rgba(255,179,71,.80);
    border-radius:15px;
    background:rgba(255,179,71,.075);
  }
  .catalog-order-item.catalog-order-drag-ghost{
    position:fixed!important;
    z-index:100000!important;
    margin:0!important;
    pointer-events:none!important;
    opacity:.98!important;
    cursor:grabbing!important;
    transform:scale(1.015) rotate(.2deg)!important;
    transform-origin:center!important;
    border-color:#fbbf24!important;
    background:#202020!important;
    box-shadow:0 22px 52px rgba(0,0,0,.52),0 0 0 2px rgba(251,191,36,.26)!important;
    transition:none!important;
  }
  .catalog-order-item.catalog-order-drag-ghost .catalog-order-handle{
    border-color:#fbbf24!important;
    background:rgba(251,191,36,.15)!important;
    transform:scale(1.04)!important;
  }
}
html.catalog-order-sorting,
html.catalog-order-sorting body{
  overscroll-behavior:none;
}
@media(max-width:700px){
  html.catalog-order-sorting,
  html.catalog-order-sorting body{
    cursor:grabbing!important;
  }
}
@media(prefers-reduced-motion:reduce){
  .catalog-order-item.catalog-order-drag-ghost{transform:none!important}
}

/* El manejador conserva sus seis puntos tambien en escritorio. */
.catalog-order-handle i{
  width:16px;
  height:20px;
  display:block;
  pointer-events:none;
  background-image:radial-gradient(circle,currentColor 1.7px,transparent 1.9px);
  background-size:7px 7px;
  background-position:1px 1px;
}

/* ==========================================================================\n   ETAPA 289 - Detalle de producto: selector lateral de sabores/surtidos móvil\n   Recupera la navegación lateral sin alterar escritorio.\n   ========================================================================== */
.modal-option-thumb{display:none;}
.modal-option-name{min-width:0;}

@media (max-width:768px){
  /* La columna de opciones libera sus hijos para formar una cuadrícula real:
     tabs arriba, selector lateral a la izquierda y compra a la derecha. */
  #modal-producto .modal-detail-workspace{
    display:grid!important;
    grid-template-columns:112px minmax(0,1fr)!important;
    grid-template-rows:auto minmax(0,1fr)!important;
    grid-template-areas:
      "tabs tabs"
      "options purchase"!important;
    column-gap:8px!important;
    row-gap:6px!important;
    align-items:stretch!important;
    min-height:0!important;
  }

  #modal-producto .modal-choice-column{
    display:contents!important;
  }

  #modal-producto .modal-tabs{
    grid-area:tabs!important;
    width:100%!important;
    margin:4px 0 0!important;
    padding:0!important;
    min-width:0!important;
  }

  #modal-producto .modal-panels-wrap{
    grid-area:options!important;
    width:112px!important;
    min-width:112px!important;
    max-width:112px!important;
    min-height:0!important;
    height:100%!important;
    padding:6px!important;
    border-radius:15px!important;
    overflow:hidden!important;
    background:linear-gradient(180deg,rgba(255,255,255,.052),rgba(255,255,255,.018))!important;
    border:1px solid rgba(255,255,255,.09)!important;
  }

  #modal-producto .modal-panel.active{
    width:100%!important;
    min-width:0!important;
    height:100%!important;
    min-height:0!important;
    overflow:hidden!important;
  }

  #modal-producto #modal-flavors-list,
  #modal-producto #modal-surtidos-list{
    display:flex!important;
    flex-direction:column!important;
    flex-wrap:nowrap!important;
    align-items:stretch!important;
    gap:6px!important;
    width:100%!important;
    min-width:0!important;
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    padding:0 2px 2px 0!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    scroll-snap-type:y proximity!important;
    scrollbar-width:thin!important;
    scrollbar-color:rgba(255,179,71,.62) transparent!important;
    -webkit-overflow-scrolling:touch;
  }

  #modal-producto #modal-flavors-list::-webkit-scrollbar,
  #modal-producto #modal-surtidos-list::-webkit-scrollbar{
    display:block!important;
    width:3px!important;
  }
  #modal-producto #modal-flavors-list::-webkit-scrollbar-thumb,
  #modal-producto #modal-surtidos-list::-webkit-scrollbar-thumb{
    background:rgba(255,179,71,.62)!important;
    border-radius:999px!important;
  }

  #modal-producto .modal-flavor-tag,
  #modal-producto .modal-surtido-tag{
    flex:0 0 auto!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:auto!important;
    min-height:48px!important;
    max-height:none!important;
    box-sizing:border-box!important;
    display:grid!important;
    grid-template-columns:34px minmax(0,1fr)!important;
    align-items:center!important;
    justify-content:stretch!important;
    gap:7px!important;
    padding:6px!important;
    border-radius:11px!important;
    text-align:left!important;
    scroll-snap-align:start!important;
    overflow:hidden!important;
  }

  #modal-producto .modal-option-thumb{
    display:block!important;
    width:34px!important;
    height:34px!important;
    min-width:34px!important;
    border-radius:9px!important;
    object-fit:contain!important;
    background:rgba(255,255,255,.045)!important;
    pointer-events:none!important;
  }

  #modal-producto .modal-option-name{
    display:block!important;
    min-width:0!important;
    color:inherit!important;
    font-size:9.5px!important;
    font-weight:800!important;
    line-height:1.15!important;
    overflow-wrap:anywhere!important;
  }

  #modal-producto .modal-flavor-tag.selected,
  #modal-producto .modal-surtido-tag.selected{
    box-shadow:0 8px 18px rgba(255,179,71,.16)!important;
  }

  #modal-producto .modal-purchase-column{
    grid-area:purchase!important;
    min-width:0!important;
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    padding-top:0!important;
    gap:6px!important;
    align-self:stretch!important;
  }

  /* El stock ya está en el hero móvil; aquí queda solo el bloque de compra. */
  #modal-producto .modal-purchase-column > .modal-buy{
    width:100%!important;
    min-width:0!important;
    height:100%!important;
    min-height:0!important;
    margin:0!important;
    box-sizing:border-box!important;
  }

  /* Precios sigue siendo una vista informativa de ancho completo. */
  #modal-producto .modal-detail-workspace.is-prices-tab{
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-rows:auto minmax(0,1fr)!important;
    grid-template-areas:
      "tabs"
      "options"!important;
  }
  #modal-producto .modal-detail-workspace.is-prices-tab .modal-panels-wrap{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
  }
  #modal-producto .modal-detail-workspace.is-prices-tab #tab-precios{
    overflow:auto!important;
  }

  /* Si una pestaña no tiene opciones, el lateral conserva su geometría sin
     invadir el bloque de compra. */
  #modal-producto .modal-panels-wrap:has(.modal-panel.active #modal-flavors-list:empty),
  #modal-producto .modal-panels-wrap:has(.modal-panel.active #modal-surtidos-list:empty){
    min-height:58px!important;
  }
}

@media (max-width:390px){
  #modal-producto .modal-detail-workspace{
    grid-template-columns:104px minmax(0,1fr)!important;
    column-gap:7px!important;
  }
  #modal-producto .modal-panels-wrap{
    width:104px!important;
    min-width:104px!important;
    max-width:104px!important;
    padding:5px!important;
  }
  #modal-producto .modal-flavor-tag,
  #modal-producto .modal-surtido-tag{
    grid-template-columns:30px minmax(0,1fr)!important;
    gap:6px!important;
    min-height:44px!important;
    padding:5px!important;
  }
  #modal-producto .modal-option-thumb{
    width:30px!important;
    height:30px!important;
    min-width:30px!important;
  }
  #modal-producto .modal-option-name{font-size:9px!important;}
}

/* ==========================================================================\n   ETAPA 290 - Detalle de producto: selector lateral móvil sin miniaturas\n   Mantiene la imagen principal como referencia visual y simplifica sabores/surtidos.\n   ========================================================================== */
@media (max-width:768px){
  #modal-producto .modal-detail-workspace{
    grid-template-columns:96px minmax(0,1fr)!important;
    column-gap:8px!important;
  }

  #modal-producto .modal-panels-wrap{
    width:96px!important;
    min-width:96px!important;
    max-width:96px!important;
    padding:5px!important;
  }

  #modal-producto .modal-flavor-tag,
  #modal-producto .modal-surtido-tag{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    grid-template-columns:none!important;
    gap:0!important;
    min-height:40px!important;
    padding:7px 6px!important;
    text-align:center!important;
  }

  #modal-producto .modal-option-thumb{
    display:none!important;
  }

  #modal-producto .modal-option-name{
    width:100%!important;
    text-align:center!important;
    font-size:9.5px!important;
    line-height:1.15!important;
    overflow-wrap:anywhere!important;
  }
}

@media (max-width:390px){
  #modal-producto .modal-detail-workspace{
    grid-template-columns:90px minmax(0,1fr)!important;
    column-gap:7px!important;
  }

  #modal-producto .modal-panels-wrap{
    width:90px!important;
    min-width:90px!important;
    max-width:90px!important;
  }

  #modal-producto .modal-flavor-tag,
  #modal-producto .modal-surtido-tag{
    min-height:38px!important;
    padding:6px 5px!important;
  }

  #modal-producto .modal-option-name{
    font-size:9px!important;
  }
}


/* Etapa 294: en móvil el carrito vive en la navegación inferior; el flotante queda solo para escritorio/tablet. */
@media(max-width:700px){
  body.catalogo-page .cart-floating{
    display:none!important;
  }
}
@media(max-width:700px) and (prefers-reduced-motion:reduce){
  .catalogo-mobile-cart.cart-feedback-bounce,
  .catalogo-mobile-cart-count.cart-count-bounce{animation:none!important}
}

/* ==========================================================================\n   ETAPA 295 - Detalle de producto: compra simplificada y hero móvil amplio\n   - Se retira la pestaña Precios del detalle público.\n   - Presentaciones en una sola columna con radio buttons.\n   - En móvil la imagen gana protagonismo y se eliminan alturas forzadas.\n   ========================================================================== */
.modal-price-data-only{display:none!important;}

#modal-producto .buy-type{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:8px;
  width:100%;
}

#modal-producto .presentation-radio-option{
  position:relative;
  width:100%;
  min-width:0;
  min-height:46px;
  box-sizing:border-box;
  display:grid;
  grid-template-columns:22px minmax(0,1fr);
  align-items:center;
  gap:10px;
  padding:10px 12px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:13px;
  background:rgba(255,255,255,.035);
  color:#f5f5f5;
  cursor:pointer;
  text-align:left;
  transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease;
}
#modal-producto .presentation-radio-option:hover{
  border-color:rgba(255,179,71,.42);
  background:rgba(255,179,71,.07);
}
#modal-producto .presentation-radio-option input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
#modal-producto .presentation-radio-mark{
  width:18px;
  height:18px;
  border-radius:50%;
  border:2px solid rgba(255,255,255,.45);
  box-sizing:border-box;
  display:grid;
  place-items:center;
  transition:border-color .18s ease,background .18s ease,box-shadow .18s ease;
}
#modal-producto .presentation-radio-mark::after{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:#ffb347;
  transform:scale(0);
  transition:transform .16s ease;
}
#modal-producto .presentation-radio-copy{min-width:0;display:block;}
#modal-producto .presentation-radio-copy strong{
  display:block;
  color:inherit;
  font-size:13px;
  line-height:1.2;
  overflow-wrap:anywhere;
}
#modal-producto .presentation-radio-option.active{
  border-color:#ffb347;
  background:linear-gradient(135deg,rgba(255,179,71,.16),rgba(255,179,71,.06));
  box-shadow:0 8px 20px rgba(255,179,71,.10);
}
#modal-producto .presentation-radio-option.active .presentation-radio-mark{
  border-color:#ffb347;
  background:rgba(255,179,71,.10);
  box-shadow:0 0 0 3px rgba(255,179,71,.10);
}
#modal-producto .presentation-radio-option.active .presentation-radio-mark::after{transform:scale(1);}
#modal-producto .presentation-radio-option.is-unavailable{
  opacity:.42;
  cursor:not-allowed;
  box-shadow:none;
}

@media (min-width:769px){
  #modal-producto .buy-type{max-width:430px;}
}

@media (max-width:768px){
  #modal-producto .modal-mobile-hero{
    position:relative!important;
    display:block!important;
    padding:0!important;
    min-height:210px!important;
    background:linear-gradient(135deg,#ff512f,#dd2476)!important;
    overflow:hidden!important;
  }
  #modal-producto .modal-mobile-hero .modal-image{
    width:100%!important;
    height:210px!important;
    min-height:210px!important;
    padding:0!important;
    display:block!important;
  }
  #modal-producto .modal-mobile-hero .modal-image-stage{
    width:100%!important;
    height:210px!important;
    min-height:210px!important;
    border-radius:0!important;
    overflow:hidden!important;
  }
  #modal-producto .modal-mobile-hero .modal-image img{
    width:92%!important;
    height:92%!important;
    max-height:198px!important;
    object-fit:contain!important;
    object-position:center!important;
  }
  #modal-producto .modal-mobile-stock-anchor{
    position:absolute!important;
    left:12px!important;
    bottom:12px!important;
    z-index:3!important;
    width:auto!important;
    max-width:142px!important;
    padding:0!important;
    display:block!important;
  }
  #modal-producto .modal-mobile-stock-anchor .modal-stock-card{
    width:auto!important;
    min-width:116px!important;
    max-width:142px!important;
    min-height:0!important;
    height:auto!important;
    padding:8px 10px 8px 12px!important;
    border-radius:13px!important;
    gap:2px!important;
    background:rgba(16,16,16,.90)!important;
    backdrop-filter:blur(9px)!important;
    box-shadow:0 8px 24px rgba(0,0,0,.28)!important;
  }
  #modal-producto .modal-mobile-stock-anchor .modal-stock-card::before{
    top:7px!important;
    bottom:7px!important;
    width:3px!important;
  }
  #modal-producto .modal-mobile-stock-anchor .modal-stock-card-kicker{font-size:6px!important;}
  #modal-producto .modal-mobile-stock-anchor .modal-stock-card strong{font-size:11px!important;}
  #modal-producto .modal-mobile-stock-anchor .modal-stock-card p{
    font-size:8px!important;
    line-height:1.25!important;
    -webkit-line-clamp:3!important;
  }

  #modal-producto .modal-info-header{padding-top:10px!important;}
  #modal-producto .modal-info-body{padding-bottom:12px!important;}

  #modal-producto .modal-detail-workspace{
    grid-template-columns:88px minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;
    column-gap:8px!important;
    row-gap:6px!important;
    align-items:start!important;
    min-height:0!important;
  }
  #modal-producto .modal-panels-wrap{
    width:88px!important;
    min-width:88px!important;
    max-width:88px!important;
    height:auto!important;
    min-height:0!important;
    max-height:278px!important;
    align-self:start!important;
  }
  #modal-producto .modal-panel.active{height:auto!important;min-height:0!important;}
  #modal-producto #modal-flavors-list,
  #modal-producto #modal-surtidos-list{
    height:auto!important;
    max-height:266px!important;
  }
  #modal-producto .modal-purchase-column{
    height:auto!important;
    min-height:0!important;
    align-self:start!important;
  }
  #modal-producto .modal-purchase-column > .modal-buy{
    height:auto!important;
    min-height:0!important;
    padding:9px!important;
    gap:8px!important;
  }
  #modal-producto .buy-type{
    display:flex!important;
    flex-direction:column!important;
    gap:6px!important;
  }
  #modal-producto .presentation-radio-option{
    min-height:39px!important;
    grid-template-columns:18px minmax(0,1fr)!important;
    gap:8px!important;
    padding:8px 9px!important;
    border-radius:11px!important;
  }
  #modal-producto .presentation-radio-mark{width:16px!important;height:16px!important;}
  #modal-producto .presentation-radio-mark::after{width:7px!important;height:7px!important;}
  #modal-producto .presentation-radio-copy strong{font-size:10px!important;}

  #modal-producto .buy-summary-row{
    grid-template-columns:minmax(0,1fr)!important;
    gap:7px!important;
  }
  #modal-producto .quantity-box{justify-content:flex-start!important;}
  #modal-producto .subtotal-box{
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:space-between!important;
    text-align:left!important;
    gap:8px!important;
  }
  #modal-producto #modal-subtotal{margin:0!important;font-size:16px!important;}
  #modal-producto .modal-purchase-actions{grid-template-columns:minmax(0,1fr)!important;}
}

@media (max-width:390px){
  #modal-producto .modal-mobile-hero,
  #modal-producto .modal-mobile-hero .modal-image,
  #modal-producto .modal-mobile-hero .modal-image-stage{
    min-height:194px!important;
    height:194px!important;
  }
  #modal-producto .modal-mobile-hero .modal-image img{max-height:184px!important;}
  #modal-producto .modal-detail-workspace{grid-template-columns:82px minmax(0,1fr)!important;column-gap:6px!important;}
  #modal-producto .modal-panels-wrap{width:82px!important;min-width:82px!important;max-width:82px!important;padding:4px!important;}
  #modal-producto .modal-flavor-tag,
  #modal-producto .modal-surtido-tag{min-height:36px!important;padding:6px 4px!important;}
  #modal-producto .modal-option-name{font-size:8.7px!important;}
  #modal-producto .presentation-radio-option{padding:7px 8px!important;}
}

/* ==========================================================================
   ETAPA 296 - Detalle de producto móvil: hero protagonista y altura natural
   - La ficha deja de reservar 82vh cuando el contenido no lo necesita.
   - La imagen principal gana altura y escala sin deformarse.
   - Stock compacto superpuesto sin cubrir el centro del producto.
   - Tabs, selector lateral y compra quedan unidos, sin franjas vacías.
   ========================================================================== */
@media (max-width:768px){
  #modal-producto .modal-content{
    height:auto!important;
    min-height:0!important;
    max-height:calc(100dvh - 20px)!important;
    overflow-y:auto!important;
    align-self:flex-start!important;
  }

  #modal-producto .modal-mobile-hero{
    position:relative!important;
    display:block!important;
    width:100%!important;
    height:250px!important;
    min-height:250px!important;
    padding:0!important;
    overflow:hidden!important;
    background:linear-gradient(135deg,#ff512f 0%,#ef3f54 46%,#dd2476 100%)!important;
  }

  #modal-producto .modal-mobile-hero .modal-image,
  #modal-producto .modal-mobile-hero .modal-image-stage{
    width:100%!important;
    height:250px!important;
    min-height:250px!important;
    padding:0!important;
    border-radius:0!important;
    background:transparent!important;
    overflow:hidden!important;
  }

  #modal-producto .modal-mobile-hero .modal-image img{
    width:100%!important;
    height:100%!important;
    max-width:none!important;
    max-height:none!important;
    object-fit:contain!important;
    object-position:center 52%!important;
    transform:scale(1.20)!important;
    transform-origin:center!important;
    filter:drop-shadow(0 20px 24px rgba(0,0,0,.26))!important;
  }

  #modal-producto .modal-mobile-stock-anchor{
    position:absolute!important;
    left:10px!important;
    bottom:10px!important;
    z-index:4!important;
    width:auto!important;
    max-width:126px!important;
    padding:0!important;
    display:block!important;
  }

  #modal-producto .modal-mobile-stock-anchor .modal-stock-card{
    width:auto!important;
    min-width:108px!important;
    max-width:126px!important;
    min-height:0!important;
    height:auto!important;
    margin:0!important;
    padding:8px 9px 8px 11px!important;
    border-radius:12px!important;
    gap:2px!important;
    background:rgba(13,13,13,.90)!important;
    border:1px solid rgba(255,255,255,.13)!important;
    backdrop-filter:blur(10px)!important;
    box-shadow:0 9px 24px rgba(0,0,0,.30)!important;
  }
  #modal-producto .modal-mobile-stock-anchor .modal-stock-card::before{
    top:7px!important;
    bottom:7px!important;
    width:3px!important;
  }
  #modal-producto .modal-mobile-stock-anchor .modal-stock-card::after{
    top:8px!important;
    right:8px!important;
    width:6px!important;
    height:6px!important;
  }
  #modal-producto .modal-mobile-stock-anchor .modal-stock-card-kicker{
    font-size:5.8px!important;
    line-height:1.15!important;
  }
  #modal-producto .modal-mobile-stock-anchor .modal-stock-card strong{
    padding-right:8px!important;
    font-size:10.5px!important;
    line-height:1.15!important;
  }
  #modal-producto .modal-mobile-stock-anchor .modal-stock-card p{
    font-size:7.5px!important;
    line-height:1.22!important;
    -webkit-line-clamp:3!important;
  }

  #modal-producto .modal-info-header{
    padding:10px 12px 5px!important;
  }
  #modal-producto .modal-info-header h2{
    font-size:23px!important;
    line-height:1.05!important;
  }
  #modal-producto #modal-package{
    margin-top:3px!important;
    font-size:10px!important;
    line-height:1.25!important;
  }
  #modal-producto #modal-category{
    font-size:8px!important;
    padding:4px 8px!important;
  }

  #modal-producto .modal-info-body{
    padding:0 12px 12px!important;
    overflow:visible!important;
  }

  #modal-producto .modal-detail-workspace{
    grid-template-columns:84px minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;
    column-gap:7px!important;
    row-gap:5px!important;
    align-items:start!important;
    min-height:0!important;
    height:auto!important;
  }

  #modal-producto .modal-tabs{
    margin:3px 0 4px!important;
    min-height:36px!important;
  }
  #modal-producto .modal-tab{
    padding:7px 0 8px!important;
    font-size:11px!important;
  }

  #modal-producto .modal-panels-wrap{
    width:84px!important;
    min-width:84px!important;
    max-width:84px!important;
    height:auto!important;
    min-height:0!important;
    max-height:252px!important;
    padding:4px!important;
    align-self:start!important;
  }
  #modal-producto .modal-panel.active{
    height:auto!important;
    min-height:0!important;
  }
  #modal-producto #modal-flavors-list,
  #modal-producto #modal-surtidos-list{
    height:auto!important;
    min-height:0!important;
    max-height:242px!important;
    gap:5px!important;
  }
  #modal-producto .modal-flavor-tag,
  #modal-producto .modal-surtido-tag{
    min-height:34px!important;
    padding:6px 4px!important;
    border-radius:9px!important;
  }
  #modal-producto .modal-option-name{
    font-size:8.7px!important;
    line-height:1.12!important;
  }

  #modal-producto .modal-purchase-column{
    height:auto!important;
    min-height:0!important;
    align-self:start!important;
    padding:0!important;
    gap:0!important;
  }
  #modal-producto .modal-purchase-column > .modal-buy{
    height:auto!important;
    min-height:0!important;
    padding:8px!important;
    gap:7px!important;
    border-radius:13px!important;
  }
  #modal-producto .buy-type{
    gap:5px!important;
    margin:0!important;
  }
  #modal-producto .presentation-radio-option{
    min-height:36px!important;
    grid-template-columns:17px minmax(0,1fr)!important;
    gap:7px!important;
    padding:7px 8px!important;
    border-radius:10px!important;
  }
  #modal-producto .presentation-radio-mark{
    width:15px!important;
    height:15px!important;
  }
  #modal-producto .presentation-radio-mark::after{
    width:6px!important;
    height:6px!important;
  }
  #modal-producto .presentation-radio-copy strong{
    font-size:9.5px!important;
  }

  #modal-producto .buy-summary-row{
    margin-top:1px!important;
    gap:5px!important;
  }
  #modal-producto .quantity-box button{
    width:30px!important;
    height:30px!important;
  }
  #modal-producto #qty-value{
    width:42px!important;
    min-width:42px!important;
    height:30px!important;
    font-size:15px!important;
  }
  #modal-producto .subtotal-box span{font-size:8px!important;}
  #modal-producto #modal-subtotal{font-size:15px!important;}
  #modal-producto .modal-purchase-actions{
    min-height:0!important;
    grid-template-rows:auto!important;
    gap:0!important;
  }
  #modal-producto .modal-button{
    min-height:40px!important;
    padding:9px 8px!important;
    font-size:11px!important;
  }
}

@media (max-width:390px){
  #modal-producto .modal-mobile-hero,
  #modal-producto .modal-mobile-hero .modal-image,
  #modal-producto .modal-mobile-hero .modal-image-stage{
    height:232px!important;
    min-height:232px!important;
  }
  #modal-producto .modal-mobile-hero .modal-image img{
    transform:scale(1.24)!important;
  }
  #modal-producto .modal-detail-workspace{
    grid-template-columns:78px minmax(0,1fr)!important;
    column-gap:6px!important;
  }
  #modal-producto .modal-panels-wrap{
    width:78px!important;
    min-width:78px!important;
    max-width:78px!important;
  }
  #modal-producto .modal-option-name{font-size:8.2px!important;}
}

/* ==========================================================================\n   ETAPA 297 - Detalle de producto móvil: rediseño estructural\n   Basado en el concepto visual aprobado: hero limpio, producto completo,\n   stock flotante, navegación compacta y compra sin espacios muertos.\n   ========================================================================== */
#modal-producto .modal-quantity-label{
  margin:10px 0 6px;
  color:rgba(255,255,255,.66);
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

@media (max-width:768px){
  #modal-producto{
    padding:10px!important;
    align-items:flex-start!important;
  }

  #modal-producto .modal-content{
    width:min(430px,100%)!important;
    max-width:430px!important;
    margin:0 auto!important;
    max-height:calc(100dvh - 20px)!important;
    height:auto!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    border-radius:24px!important;
    background:#111!important;
    box-shadow:0 26px 70px rgba(0,0,0,.58)!important;
    scrollbar-width:none!important;
  }
  #modal-producto .modal-content::-webkit-scrollbar{display:none!important;}

  #modal-producto .modal-close{
    top:14px!important;
    right:14px!important;
    width:44px!important;
    height:44px!important;
    border-radius:50%!important;
    background:#fff!important;
    color:#111!important;
    font-size:29px!important;
    z-index:20!important;
    box-shadow:0 6px 18px rgba(0,0,0,.18)!important;
  }

  /* HERO: imagen completa, protagonista y sin recorte. */
  #modal-producto .modal-mobile-hero,
  #modal-producto .modal-mobile-hero .modal-image,
  #modal-producto .modal-mobile-hero .modal-image-stage{
    width:100%!important;
    height:286px!important;
    min-height:286px!important;
    border-radius:0!important;
    overflow:hidden!important;
    background:linear-gradient(135deg,#ff4a2f 0%,#ef3f54 48%,#df236f 100%)!important;
  }
  #modal-producto .modal-mobile-hero .modal-image-stage{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
  #modal-producto .modal-mobile-hero .modal-image img{
    display:block!important;
    width:86%!important;
    height:88%!important;
    max-width:330px!important;
    max-height:252px!important;
    object-fit:contain!important;
    object-position:center!important;
    transform:none!important;
    filter:drop-shadow(0 18px 22px rgba(0,0,0,.22))!important;
  }
  #modal-producto .modal-image-caption,
  #modal-producto .modal-stock-badge{display:none!important;}

  /* Stock compacto flotando, sin tapar el centro del producto. */
  #modal-producto .modal-mobile-stock-anchor{
    left:18px!important;
    bottom:16px!important;
    width:auto!important;
    max-width:178px!important;
  }
  #modal-producto .modal-mobile-stock-anchor .modal-stock-card{
    min-width:146px!important;
    max-width:178px!important;
    padding:11px 13px 11px 15px!important;
    border-radius:16px!important;
    background:rgba(16,16,16,.92)!important;
    border:1px solid rgba(255,255,255,.15)!important;
    box-shadow:0 12px 28px rgba(0,0,0,.34)!important;
  }
  #modal-producto .modal-mobile-stock-anchor .modal-stock-card-kicker{
    font-size:7px!important;
    letter-spacing:.08em!important;
  }
  #modal-producto .modal-mobile-stock-anchor .modal-stock-card strong{
    font-size:13px!important;
    line-height:1.15!important;
  }
  #modal-producto .modal-mobile-stock-anchor .modal-stock-card p{
    margin-top:3px!important;
    font-size:9px!important;
    line-height:1.28!important;
    -webkit-line-clamp:3!important;
  }

  /* Información principal como bloque propio debajo del hero. */
  #modal-producto .modal-info-header{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-areas:
      "title category"
      "desc desc"!important;
    align-items:center!important;
    gap:4px 10px!important;
    padding:17px 20px 9px!important;
    background:#111!important;
  }
  #modal-producto .modal-info-header h2{
    grid-area:title!important;
    margin:0!important;
    font-size:29px!important;
    line-height:1!important;
  }
  #modal-producto #modal-category{
    grid-area:category!important;
    align-self:center!important;
    margin:0!important;
    padding:5px 10px!important;
    border:1px solid rgba(255,179,71,.5)!important;
    border-radius:999px!important;
    color:#ffb347!important;
    background:rgba(255,179,71,.05)!important;
    font-size:8px!important;
    font-weight:900!important;
    letter-spacing:.08em!important;
  }
  #modal-producto #modal-package{
    grid-area:desc!important;
    margin:4px 0 0!important;
    color:rgba(255,255,255,.78)!important;
    font-size:11px!important;
    line-height:1.4!important;
  }

  #modal-producto .modal-info-body{
    padding:0 20px 20px!important;
    background:#111!important;
  }

  /* Tabs superiores y zona inferior compacta. */
  #modal-producto .modal-detail-workspace{
    display:grid!important;
    grid-template-columns:116px minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;
    grid-template-areas:
      "tabs tabs"
      "options purchase"!important;
    column-gap:12px!important;
    row-gap:10px!important;
    height:auto!important;
    min-height:0!important;
    align-items:start!important;
  }
  #modal-producto .modal-tabs{
    grid-area:tabs!important;
    width:100%!important;
    min-height:44px!important;
    margin:0!important;
    padding:0!important;
    border-bottom:1px solid rgba(255,255,255,.10)!important;
  }
  #modal-producto .modal-tab{
    min-width:90px!important;
    padding:12px 0 10px!important;
    color:rgba(255,255,255,.62)!important;
    font-size:13px!important;
    font-weight:800!important;
  }
  #modal-producto .modal-tab.active{color:#ffb347!important;}
  #modal-producto .modal-tab.active::after{
    height:3px!important;
    border-radius:999px!important;
    background:#ffb347!important;
  }

  /* Lista lateral limpia y con altura contenida. */
  #modal-producto .modal-panels-wrap{
    grid-area:options!important;
    width:116px!important;
    min-width:116px!important;
    max-width:116px!important;
    height:auto!important;
    min-height:0!important;
    max-height:374px!important;
    padding:0!important;
    border:1px solid rgba(255,255,255,.10)!important;
    border-radius:17px!important;
    background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.018))!important;
    overflow:hidden!important;
  }
  #modal-producto .modal-panel.active{
    height:auto!important;
    min-height:0!important;
  }
  #modal-producto #modal-flavors-list,
  #modal-producto #modal-surtidos-list{
    display:flex!important;
    flex-direction:column!important;
    gap:0!important;
    width:100%!important;
    max-height:374px!important;
    padding:0!important;
    margin:0!important;
    overflow-y:auto!important;
    scrollbar-width:thin!important;
    scrollbar-color:rgba(255,179,71,.55) transparent!important;
  }
  #modal-producto .modal-flavor-tag,
  #modal-producto .modal-surtido-tag{
    position:relative!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    width:100%!important;
    min-height:54px!important;
    margin:0!important;
    padding:10px 32px 10px 14px!important;
    border:0!important;
    border-bottom:1px solid rgba(255,255,255,.09)!important;
    border-radius:0!important;
    background:transparent!important;
    color:#fff!important;
    text-align:left!important;
    box-shadow:none!important;
  }
  #modal-producto .modal-flavor-tag:last-child,
  #modal-producto .modal-surtido-tag:last-child{border-bottom:0!important;}
  #modal-producto .modal-flavor-tag.selected,
  #modal-producto .modal-surtido-tag.selected{
    color:#17120b!important;
    background:linear-gradient(135deg,#ffb347,#ff9f2f)!important;
  }
  #modal-producto .modal-flavor-tag.selected::after,
  #modal-producto .modal-surtido-tag.selected::after{
    content:"✓"!important;
    position:absolute!important;
    right:11px!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    width:21px!important;
    height:21px!important;
    display:grid!important;
    place-items:center!important;
    border-radius:50%!important;
    background:#17120b!important;
    color:#ffb347!important;
    font-size:12px!important;
    font-weight:900!important;
  }
  #modal-producto .modal-option-thumb{display:none!important;}
  #modal-producto .modal-option-name{
    width:100%!important;
    color:inherit!important;
    font-size:11px!important;
    font-weight:800!important;
    line-height:1.2!important;
    text-align:left!important;
  }

  /* Bloque de compra como tarjeta compacta y alineada desde arriba. */
  #modal-producto .modal-purchase-column{
    grid-area:purchase!important;
    width:100%!important;
    min-width:0!important;
    height:auto!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
  }
  #modal-producto .modal-purchase-column > .modal-buy{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    margin:0!important;
    padding:16px!important;
    gap:0!important;
    border-radius:18px!important;
    border:1px solid rgba(255,255,255,.09)!important;
    background:linear-gradient(180deg,rgba(255,255,255,.052),rgba(255,255,255,.025))!important;
    box-shadow:0 12px 30px rgba(0,0,0,.18)!important;
  }
  #modal-producto .purchase-selection-inline{display:none!important;}
  #modal-producto .modal-buy-title{
    display:block!important;
    margin:0 0 9px!important;
    color:rgba(255,255,255,.68)!important;
    font-size:11px!important;
    font-weight:900!important;
    letter-spacing:.08em!important;
    text-transform:uppercase!important;
  }

  #modal-producto .buy-type{
    display:flex!important;
    flex-direction:column!important;
    gap:8px!important;
    width:100%!important;
    margin:0!important;
  }
  #modal-producto .presentation-radio-option{
    min-height:52px!important;
    display:grid!important;
    grid-template-columns:20px minmax(0,1fr)!important;
    gap:10px!important;
    padding:10px 12px!important;
    border-radius:14px!important;
    border:1px solid rgba(255,255,255,.13)!important;
    background:rgba(255,255,255,.025)!important;
  }
  #modal-producto .presentation-radio-option.active{
    border-color:#ffb347!important;
    background:linear-gradient(135deg,rgba(255,179,71,.17),rgba(255,179,71,.055))!important;
    box-shadow:0 0 0 1px rgba(255,179,71,.08),0 8px 20px rgba(0,0,0,.12)!important;
  }
  #modal-producto .presentation-radio-mark{
    width:18px!important;
    height:18px!important;
  }
  #modal-producto .presentation-radio-copy strong{
    font-size:11px!important;
    line-height:1.25!important;
  }

  #modal-producto .modal-quantity-label{
    display:block!important;
    margin:16px 0 7px!important;
    font-size:10px!important;
  }
  #modal-producto .buy-summary-row{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:12px!important;
    margin:0!important;
    padding-top:0!important;
  }
  #modal-producto .quantity-box{
    display:grid!important;
    grid-template-columns:42px 58px 42px!important;
    justify-content:start!important;
    width:max-content!important;
    border:1px solid rgba(255,255,255,.11)!important;
    border-radius:13px!important;
    overflow:hidden!important;
  }
  #modal-producto .quantity-box button,
  #modal-producto #qty-value{
    width:100%!important;
    height:42px!important;
    min-width:0!important;
    border:0!important;
    border-radius:0!important;
  }
  #modal-producto .quantity-box button{font-size:20px!important;}
  #modal-producto #qty-value{
    font-size:18px!important;
    font-weight:900!important;
    background:#0d0d0d!important;
  }
  #modal-producto .subtotal-box{
    display:flex!important;
    flex-direction:row!important;
    align-items:end!important;
    justify-content:space-between!important;
    gap:12px!important;
    padding-top:2px!important;
    text-align:left!important;
  }
  #modal-producto .subtotal-box span{
    color:rgba(255,255,255,.55)!important;
    font-size:10px!important;
    font-weight:900!important;
    letter-spacing:.08em!important;
    text-transform:uppercase!important;
  }
  #modal-producto #modal-subtotal{
    margin:0!important;
    color:#ffb347!important;
    font-size:25px!important;
    line-height:1!important;
  }
  #modal-producto .modal-purchase-actions{
    display:block!important;
    margin-top:14px!important;
  }
  #modal-producto .modal-button{
    width:100%!important;
    min-height:48px!important;
    padding:12px 14px!important;
    border-radius:14px!important;
    font-size:13px!important;
    font-weight:900!important;
  }
}

@media (max-width:390px){
  #modal-producto .modal-mobile-hero,
  #modal-producto .modal-mobile-hero .modal-image,
  #modal-producto .modal-mobile-hero .modal-image-stage{
    height:254px!important;
    min-height:254px!important;
  }
  #modal-producto .modal-mobile-hero .modal-image img{
    width:82%!important;
    height:86%!important;
    max-height:218px!important;
  }
  #modal-producto .modal-info-header{padding:14px 16px 8px!important;}
  #modal-producto .modal-info-header h2{font-size:26px!important;}
  #modal-producto .modal-info-body{padding:0 16px 16px!important;}
  #modal-producto .modal-detail-workspace{
    grid-template-columns:104px minmax(0,1fr)!important;
    column-gap:9px!important;
  }
  #modal-producto .modal-panels-wrap{
    width:104px!important;
    min-width:104px!important;
    max-width:104px!important;
    max-height:348px!important;
  }
  #modal-producto #modal-flavors-list,
  #modal-producto #modal-surtidos-list{max-height:348px!important;}
  #modal-producto .modal-flavor-tag,
  #modal-producto .modal-surtido-tag{
    min-height:49px!important;
    padding:9px 29px 9px 11px!important;
  }
  #modal-producto .modal-option-name{font-size:10px!important;}
  #modal-producto .modal-purchase-column > .modal-buy{padding:13px!important;}
  #modal-producto .presentation-radio-option{
    min-height:47px!important;
    padding:9px 10px!important;
  }
  #modal-producto .presentation-radio-copy strong{font-size:10px!important;}
  #modal-producto .quantity-box{grid-template-columns:38px 50px 38px!important;}
  #modal-producto .quantity-box button,
  #modal-producto #qty-value{height:39px!important;}
  #modal-producto #modal-subtotal{font-size:22px!important;}
}

/* ==========================================================================
   ETAPA 298 - Detalle móvil: composición en flujo, sin superposiciones
   - Hero limpio con imagen completa.
   - Stock como franja de lado a lado antes de la ficha del producto.
   - Nombre, categoría y descripción dentro del bloque negro.
   - Tabs Sabores/Surtidos alineados dentro del flujo normal.
   - Selector y compra compactos para aprovechar una sola pantalla.
   ========================================================================== */
@media (max-width:768px){
  #modal-producto{
    padding:8px!important;
    align-items:flex-start!important;
  }

  #modal-producto .modal-content{
    width:min(430px,100%)!important;
    max-width:430px!important;
    height:auto!important;
    max-height:calc(100dvh - 16px)!important;
    margin:0 auto!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    border-radius:20px!important;
    background:#101010!important;
  }

  #modal-producto .modal-close{
    top:12px!important;
    right:12px!important;
    width:40px!important;
    height:40px!important;
    font-size:26px!important;
  }

  /* Imagen: bloque independiente, sin stock flotante. */
  #modal-producto .modal-mobile-hero,
  #modal-producto .modal-mobile-hero .modal-image,
  #modal-producto .modal-mobile-hero .modal-image-stage{
    width:100%!important;
    height:220px!important;
    min-height:220px!important;
    border-radius:0!important;
    overflow:hidden!important;
    background:linear-gradient(135deg,#ff4b2f 0%,#ef3f54 48%,#df236f 100%)!important;
  }
  #modal-producto .modal-mobile-hero .modal-image-stage{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
  }
  #modal-producto .modal-mobile-hero .modal-image img{
    display:block!important;
    width:78%!important;
    height:88%!important;
    max-width:280px!important;
    max-height:196px!important;
    object-fit:contain!important;
    object-position:center!important;
    transform:none!important;
    filter:drop-shadow(0 14px 18px rgba(0,0,0,.22))!important;
  }

  /* Franja de stock: siempre en flujo y de lado a lado. */
  #modal-producto .modal-mobile-stock-strip{
    display:block!important;
    width:100%!important;
    padding:0 14px!important;
    box-sizing:border-box!important;
    background:#101010!important;
  }
  #modal-producto .modal-mobile-stock-strip .modal-stock-card{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    min-height:0!important;
    height:auto!important;
    margin:0!important;
    padding:10px 0!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1.35fr)!important;
    grid-template-areas:
      "kicker title"
      "kicker detail"!important;
    align-items:center!important;
    column-gap:10px!important;
    row-gap:1px!important;
    border:0!important;
    border-top:1px solid rgba(255,255,255,.11)!important;
    border-bottom:1px solid rgba(255,255,255,.11)!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    backdrop-filter:none!important;
  }
  #modal-producto .modal-mobile-stock-strip .modal-stock-card::before,
  #modal-producto .modal-mobile-stock-strip .modal-stock-card::after{display:none!important;}
  #modal-producto .modal-mobile-stock-strip .modal-stock-card-kicker{
    grid-area:kicker!important;
    margin:0!important;
    padding-left:18px!important;
    position:relative!important;
    color:#72e99b!important;
    font-size:8px!important;
    line-height:1.2!important;
    letter-spacing:.07em!important;
  }
  #modal-producto .modal-mobile-stock-strip .modal-stock-card-kicker::before{
    content:""!important;
    position:absolute!important;
    left:0!important;
    top:50%!important;
    width:9px!important;
    height:9px!important;
    transform:translateY(-50%)!important;
    border-radius:50%!important;
    background:#58d98a!important;
    box-shadow:0 0 0 4px rgba(88,217,138,.14)!important;
  }
  #modal-producto .modal-mobile-stock-strip .modal-stock-card strong{
    grid-area:title!important;
    margin:0!important;
    padding:0!important;
    color:#72e99b!important;
    font-size:12px!important;
    line-height:1.15!important;
    text-align:right!important;
  }
  #modal-producto .modal-mobile-stock-strip .modal-stock-card p{
    grid-area:detail!important;
    margin:2px 0 0!important;
    color:rgba(255,255,255,.66)!important;
    font-size:8px!important;
    line-height:1.22!important;
    text-align:right!important;
    display:block!important;
    overflow:visible!important;
    -webkit-line-clamp:unset!important;
  }

  /* Datos del producto: bloque negro estable inmediatamente después del stock. */
  #modal-producto .modal-info{
    display:block!important;
    width:100%!important;
    background:#101010!important;
  }
  #modal-producto .modal-info-header{
    position:static!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-areas:
      "title category"
      "desc desc"!important;
    align-items:center!important;
    gap:4px 10px!important;
    width:100%!important;
    padding:11px 14px 8px!important;
    box-sizing:border-box!important;
    background:#101010!important;
    transform:none!important;
  }
  #modal-producto .modal-info-header h2{
    grid-area:title!important;
    margin:0!important;
    font-size:24px!important;
    line-height:1!important;
  }
  #modal-producto #modal-category{
    grid-area:category!important;
    margin:0!important;
    padding:4px 8px!important;
    align-self:center!important;
    font-size:7px!important;
  }
  #modal-producto #modal-package{
    grid-area:desc!important;
    margin:3px 0 0!important;
    font-size:9px!important;
    line-height:1.3!important;
    color:rgba(255,255,255,.72)!important;
  }

  #modal-producto .modal-info-body{
    width:100%!important;
    padding:0 14px 14px!important;
    box-sizing:border-box!important;
    background:#101010!important;
    overflow:visible!important;
  }

  /* Todo el contenido inferior se mantiene en su flujo normal. */
  #modal-producto .modal-detail-workspace{
    display:grid!important;
    grid-template-columns:96px minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;
    grid-template-areas:
      "tabs tabs"
      "options purchase"!important;
    column-gap:9px!important;
    row-gap:8px!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    align-items:start!important;
  }

  #modal-producto .modal-choice-column{
    display:contents!important;
  }

  #modal-producto .modal-tabs{
    grid-area:tabs!important;
    position:static!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    width:100%!important;
    min-height:34px!important;
    margin:0!important;
    padding:0!important;
    background:transparent!important;
    border-bottom:1px solid rgba(255,255,255,.10)!important;
    transform:none!important;
  }
  #modal-producto .modal-tab{
    position:relative!important;
    width:100%!important;
    min-width:0!important;
    min-height:34px!important;
    margin:0!important;
    padding:8px 0 7px!important;
    background:transparent!important;
    color:rgba(255,255,255,.58)!important;
    border:0!important;
    font-size:10px!important;
    text-align:center!important;
  }
  #modal-producto .modal-tab.active{color:#ffb347!important;}
  #modal-producto .modal-tab.active::after{
    content:""!important;
    position:absolute!important;
    left:18%!important;
    right:18%!important;
    bottom:-1px!important;
    height:2px!important;
    border-radius:999px!important;
    background:#ffb347!important;
  }

  #modal-producto .modal-panels-wrap{
    grid-area:options!important;
    position:static!important;
    width:96px!important;
    min-width:96px!important;
    max-width:96px!important;
    height:auto!important;
    min-height:0!important;
    max-height:282px!important;
    margin:0!important;
    padding:0!important;
    border:1px solid rgba(255,255,255,.10)!important;
    border-radius:13px!important;
    overflow:hidden!important;
    background:rgba(255,255,255,.025)!important;
    transform:none!important;
  }
  #modal-producto #modal-flavors-list,
  #modal-producto #modal-surtidos-list{
    max-height:282px!important;
  }
  #modal-producto .modal-flavor-tag,
  #modal-producto .modal-surtido-tag{
    min-height:43px!important;
    padding:7px 26px 7px 10px!important;
  }
  #modal-producto .modal-option-name{font-size:9px!important;}

  #modal-producto .modal-purchase-column{
    grid-area:purchase!important;
    position:static!important;
    width:100%!important;
    min-width:0!important;
    height:auto!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    transform:none!important;
  }
  #modal-producto .modal-purchase-column > .modal-buy{
    width:100%!important;
    min-height:0!important;
    margin:0!important;
    padding:11px!important;
    border-radius:14px!important;
  }
  #modal-producto .modal-buy-title{
    margin:0 0 6px!important;
    font-size:9px!important;
  }
  #modal-producto .buy-type{gap:5px!important;}
  #modal-producto .presentation-radio-option{
    min-height:39px!important;
    padding:7px 8px!important;
    border-radius:10px!important;
  }
  #modal-producto .presentation-radio-copy strong{font-size:9px!important;}
  #modal-producto .modal-quantity-label{
    margin:9px 0 5px!important;
    font-size:8px!important;
  }
  #modal-producto .quantity-box{
    grid-template-columns:30px 42px 30px!important;
    border-radius:10px!important;
  }
  #modal-producto .quantity-box button,
  #modal-producto #qty-value{height:31px!important;}
  #modal-producto .quantity-box button{font-size:16px!important;}
  #modal-producto #qty-value{font-size:14px!important;}
  #modal-producto .buy-summary-row{gap:7px!important;}
  #modal-producto .subtotal-box span{font-size:7px!important;}
  #modal-producto #modal-subtotal{font-size:18px!important;}
  #modal-producto .modal-purchase-actions{margin-top:8px!important;}
  #modal-producto .modal-button{
    min-height:37px!important;
    padding:8px 10px!important;
    border-radius:10px!important;
    font-size:10px!important;
  }
}

@media (max-width:390px){
  #modal-producto .modal-mobile-hero,
  #modal-producto .modal-mobile-hero .modal-image,
  #modal-producto .modal-mobile-hero .modal-image-stage{
    height:198px!important;
    min-height:198px!important;
  }
  #modal-producto .modal-mobile-hero .modal-image img{
    width:74%!important;
    height:88%!important;
    max-height:176px!important;
  }
  #modal-producto .modal-mobile-stock-strip{padding:0 12px!important;}
  #modal-producto .modal-info-header{padding:10px 12px 7px!important;}
  #modal-producto .modal-info-header h2{font-size:22px!important;}
  #modal-producto .modal-info-body{padding:0 12px 12px!important;}
  #modal-producto .modal-detail-workspace{
    grid-template-columns:88px minmax(0,1fr)!important;
    column-gap:7px!important;
  }
  #modal-producto .modal-panels-wrap{
    width:88px!important;
    min-width:88px!important;
    max-width:88px!important;
  }
  #modal-producto .modal-option-name{font-size:8.4px!important;}
  #modal-producto .modal-purchase-column > .modal-buy{padding:9px!important;}
  #modal-producto .presentation-radio-option{padding:6px 7px!important;}
  #modal-producto .presentation-radio-copy strong{font-size:8.5px!important;}
}

/* ========================================================================== 
   ETAPA 300 - Detalle de producto ESCRITORIO
   Reconstrucción independiente del layout móvil aprobado en la Etapa 298.
   Todo permanece dentro del flujo normal: imagen, stock, ficha, tabs,
   opciones y compra. Sin posiciones absolutas para la composición principal.
   ========================================================================== */
@media (min-width:769px){
  #modal-producto{
    padding:20px!important;
    align-items:center!important;
  }

  #modal-producto .modal-content{
    width:min(1280px,calc(100vw - 40px))!important;
    height:min(760px,calc(100vh - 40px))!important;
    max-height:none!important;
    display:grid!important;
    grid-template-columns:minmax(390px,38%) minmax(0,62%)!important;
    grid-template-rows:1fr!important;
    overflow:hidden!important;
    border-radius:28px!important;
    background:#111!important;
    border:1px solid rgba(255,255,255,.09)!important;
    box-shadow:0 30px 90px rgba(0,0,0,.58)!important;
  }

  #modal-producto .modal-close{
    top:18px!important;
    right:18px!important;
    width:46px!important;
    height:46px!important;
    border-radius:50%!important;
    z-index:30!important;
  }

  /* Columna visual izquierda. */
  #modal-producto .modal-mobile-hero{
    display:contents!important;
  }
  #modal-producto .modal-image{
    grid-column:1!important;
    grid-row:1!important;
    width:100%!important;
    min-width:0!important;
    height:100%!important;
    min-height:0!important;
    padding:24px!important;
    box-sizing:border-box!important;
    background:linear-gradient(135deg,#ff4b2f 0%,#ef3f54 48%,#df236f 100%)!important;
  }
  #modal-producto .modal-image-stage{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    overflow:hidden!important;
    border-radius:24px!important;
    background:rgba(255,255,255,.045)!important;
    border:1px solid rgba(255,255,255,.10)!important;
  }
  #modal-producto .modal-image img{
    display:block!important;
    width:86%!important;
    height:82%!important;
    max-width:430px!important;
    max-height:610px!important;
    object-fit:contain!important;
    object-position:center!important;
    transform:none!important;
    filter:drop-shadow(0 26px 34px rgba(0,0,0,.32))!important;
  }
  #modal-producto .modal-image-caption{
    left:20px!important;
    right:auto!important;
    bottom:20px!important;
    width:min(72%,310px)!important;
    padding:14px 16px!important;
    border-radius:18px!important;
    background:rgba(18,18,18,.90)!important;
    border:1px solid rgba(255,255,255,.12)!important;
  }
  #modal-producto .modal-image-caption strong{font-size:24px!important;}
  #modal-producto .modal-image-caption p{font-size:12px!important;}
  #modal-producto .modal-stock-badge{display:none!important;}

  /* Columna de información derecha. */
  #modal-producto .modal-info{
    grid-column:2!important;
    grid-row:1!important;
    min-width:0!important;
    min-height:0!important;
    height:100%!important;
    display:grid!important;
    grid-template-rows:auto auto minmax(0,1fr)!important;
    overflow:hidden!important;
    background:#111!important;
  }

  /* Stock en una franja horizontal propia. */
  #modal-producto .modal-desktop-stock-strip{
    display:block!important;
    width:100%!important;
    padding:28px 76px 0 30px!important;
    box-sizing:border-box!important;
  }
  #modal-producto .modal-desktop-stock-strip .modal-stock-card{
    width:100%!important;
    min-width:0!important;
    min-height:64px!important;
    margin:0!important;
    padding:14px 18px!important;
    display:grid!important;
    grid-template-columns:auto auto minmax(0,1fr)!important;
    align-items:center!important;
    gap:16px!important;
    border-radius:17px!important;
    border:1px solid rgba(255,255,255,.10)!important;
    background:linear-gradient(135deg,rgba(255,255,255,.045),rgba(255,255,255,.018))!important;
    box-shadow:none!important;
    overflow:hidden!important;
  }
  #modal-producto .modal-desktop-stock-strip .modal-stock-card::before,
  #modal-producto .modal-desktop-stock-strip .modal-stock-card::after{display:none!important;}
  #modal-producto .modal-desktop-stock-strip .modal-stock-card-kicker{
    margin:0!important;
    color:#73e69a!important;
    font-size:10px!important;
    letter-spacing:.09em!important;
    white-space:nowrap!important;
  }
  #modal-producto .modal-desktop-stock-strip .modal-stock-card strong{
    margin:0!important;
    color:#73e69a!important;
    font-size:17px!important;
    line-height:1.1!important;
    white-space:nowrap!important;
  }
  #modal-producto .modal-desktop-stock-strip .modal-stock-card p{
    margin:0!important;
    min-width:0!important;
    color:rgba(255,255,255,.72)!important;
    font-size:12px!important;
    line-height:1.35!important;
    text-align:right!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }

  /* Nombre, categoría y descripción. */
  #modal-producto .modal-info-header{
    position:static!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-areas:
      "category category"
      "title badge"
      "desc desc"!important;
    align-items:center!important;
    gap:4px 18px!important;
    width:100%!important;
    padding:22px 32px 12px!important;
    box-sizing:border-box!important;
    background:#111!important;
    transform:none!important;
  }
  #modal-producto #modal-category{
    grid-area:category!important;
    justify-self:start!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    color:#ffb347!important;
    font-size:11px!important;
    line-height:1!important;
    letter-spacing:.20em!important;
    text-transform:uppercase!important;
  }
  #modal-producto .modal-info-header h2{
    grid-area:title!important;
    margin:5px 0 2px!important;
    color:#fff!important;
    font-size:clamp(34px,3vw,46px)!important;
    line-height:1!important;
  }
  #modal-producto #modal-package{
    grid-area:desc!important;
    margin:4px 0 0!important;
    color:rgba(255,255,255,.73)!important;
    font-size:14px!important;
    line-height:1.4!important;
    max-width:720px!important;
  }

  /* Workspace: tabs arriba; opciones y compra debajo. */
  #modal-producto .modal-info-body{
    min-height:0!important;
    height:100%!important;
    padding:0 32px 30px!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
    background:#111!important;
  }
  #modal-producto .modal-detail-workspace{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    display:grid!important;
    grid-template-columns:minmax(230px,.78fr) minmax(360px,1.22fr)!important;
    grid-template-rows:auto minmax(0,1fr)!important;
    grid-template-areas:
      "tabs tabs"
      "options purchase"!important;
    column-gap:20px!important;
    row-gap:16px!important;
    align-items:stretch!important;
    margin:0!important;
    padding:0!important;
  }
  #modal-producto .modal-choice-column{display:contents!important;}

  #modal-producto .modal-tabs{
    grid-area:tabs!important;
    position:static!important;
    display:flex!important;
    align-items:end!important;
    gap:36px!important;
    width:100%!important;
    min-height:48px!important;
    margin:0!important;
    padding:0!important;
    border-bottom:1px solid rgba(255,255,255,.10)!important;
    transform:none!important;
  }
  #modal-producto .modal-tab{
    min-width:100px!important;
    min-height:48px!important;
    margin:0!important;
    padding:14px 4px 12px!important;
    color:rgba(255,255,255,.60)!important;
    font-size:15px!important;
    font-weight:800!important;
    text-align:left!important;
  }
  #modal-producto .modal-tab.active{color:#ffb347!important;}
  #modal-producto .modal-tab.active::after{
    left:0!important;
    right:auto!important;
    bottom:-1px!important;
    width:100%!important;
    height:3px!important;
    border-radius:999px!important;
  }

  /* Opciones directamente debajo de sus pestañas. */
  #modal-producto .modal-panels-wrap{
    grid-area:options!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    border:1px solid rgba(255,255,255,.09)!important;
    border-radius:18px!important;
    background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.016))!important;
    transform:none!important;
  }
  #modal-producto .modal-panel.active{
    height:100%!important;
    min-height:0!important;
    overflow:hidden!important;
  }
  #modal-producto #modal-flavors-list,
  #modal-producto #modal-surtidos-list{
    display:flex!important;
    flex-direction:column!important;
    gap:0!important;
    width:100%!important;
    height:100%!important;
    max-height:none!important;
    margin:0!important;
    padding:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    scrollbar-width:thin!important;
    scrollbar-color:rgba(255,179,71,.45) transparent!important;
  }
  #modal-producto .modal-flavor-tag,
  #modal-producto .modal-surtido-tag{
    position:relative!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    flex:0 0 auto!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    min-height:52px!important;
    margin:0!important;
    padding:12px 42px 12px 16px!important;
    border:0!important;
    border-bottom:1px solid rgba(255,255,255,.075)!important;
    border-radius:0!important;
    background:transparent!important;
    color:#f0f0f0!important;
    text-align:left!important;
    box-shadow:none!important;
  }
  #modal-producto .modal-flavor-tag:last-child,
  #modal-producto .modal-surtido-tag:last-child{border-bottom:0!important;}
  #modal-producto .modal-flavor-tag:hover,
  #modal-producto .modal-surtido-tag:hover{background:rgba(255,255,255,.045)!important;}
  #modal-producto .modal-flavor-tag.selected,
  #modal-producto .modal-surtido-tag.selected{
    color:#17120b!important;
    background:linear-gradient(135deg,#ffb347,#ffa22f)!important;
  }
  #modal-producto .modal-flavor-tag.selected::after,
  #modal-producto .modal-surtido-tag.selected::after{
    content:"✓"!important;
    position:absolute!important;
    right:14px!important;
    top:50%!important;
    transform:translateY(-50%)!important;
    width:22px!important;
    height:22px!important;
    display:grid!important;
    place-items:center!important;
    border-radius:50%!important;
    background:#17120b!important;
    color:#ffb347!important;
    font-size:12px!important;
    font-weight:900!important;
  }
  #modal-producto .modal-option-thumb{display:none!important;}
  #modal-producto .modal-option-name{
    width:100%!important;
    color:inherit!important;
    font-size:13px!important;
    font-weight:800!important;
    line-height:1.2!important;
    text-align:left!important;
  }

  /* Compra alineada al lado de las opciones. */
  #modal-producto .modal-purchase-column{
    grid-area:purchase!important;
    position:static!important;
    display:block!important;
    width:100%!important;
    min-width:0!important;
    height:100%!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    transform:none!important;
  }
  #modal-producto .modal-purchase-column > .modal-buy{
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    margin:0!important;
    padding:22px!important;
    display:flex!important;
    flex-direction:column!important;
    justify-content:flex-start!important;
    gap:0!important;
    border-radius:20px!important;
    border:1px solid rgba(255,255,255,.09)!important;
    background:linear-gradient(180deg,rgba(255,255,255,.047),rgba(255,255,255,.022))!important;
    box-shadow:none!important;
    overflow:auto!important;
  }
  #modal-producto .purchase-selection-inline{display:none!important;}
  #modal-producto .modal-buy-title{
    display:block!important;
    margin:0 0 12px!important;
    color:rgba(255,255,255,.66)!important;
    font-size:12px!important;
    font-weight:900!important;
    letter-spacing:.09em!important;
    text-transform:uppercase!important;
  }
  #modal-producto .buy-type{
    display:flex!important;
    flex-direction:column!important;
    gap:10px!important;
    width:100%!important;
    margin:0!important;
  }
  #modal-producto .presentation-radio-option{
    min-height:56px!important;
    display:grid!important;
    grid-template-columns:22px minmax(0,1fr)!important;
    align-items:center!important;
    gap:12px!important;
    padding:12px 15px!important;
    border-radius:15px!important;
    border:1px solid rgba(255,255,255,.12)!important;
    background:rgba(255,255,255,.025)!important;
  }
  #modal-producto .presentation-radio-option.active{
    border-color:#ffb347!important;
    background:linear-gradient(135deg,rgba(255,179,71,.15),rgba(255,179,71,.045))!important;
    box-shadow:0 0 0 1px rgba(255,179,71,.07)!important;
  }
  #modal-producto .presentation-radio-mark{
    width:20px!important;
    height:20px!important;
  }
  #modal-producto .presentation-radio-copy strong{
    font-size:14px!important;
    line-height:1.2!important;
  }
  #modal-producto .modal-quantity-label{
    display:block!important;
    margin:20px 0 9px!important;
    color:rgba(255,255,255,.58)!important;
    font-size:11px!important;
    font-weight:900!important;
    letter-spacing:.08em!important;
    text-transform:uppercase!important;
  }
  #modal-producto .buy-summary-row{
    display:grid!important;
    grid-template-columns:auto minmax(150px,1fr)!important;
    align-items:end!important;
    gap:24px!important;
    margin:0!important;
  }
  #modal-producto .quantity-box{
    display:grid!important;
    grid-template-columns:42px 58px 42px!important;
    gap:0!important;
    width:max-content!important;
    margin:0!important;
    border:1px solid rgba(255,255,255,.11)!important;
    border-radius:13px!important;
    overflow:hidden!important;
  }
  #modal-producto .quantity-box button,
  #modal-producto #qty-value{
    width:100%!important;
    height:42px!important;
    min-width:0!important;
    margin:0!important;
    border:0!important;
    border-radius:0!important;
  }
  #modal-producto .subtotal-box{
    display:flex!important;
    flex-direction:row!important;
    align-items:end!important;
    justify-content:space-between!important;
    gap:14px!important;
    margin:0!important;
    padding:0!important;
    text-align:left!important;
  }
  #modal-producto .subtotal-box span{
    color:rgba(255,255,255,.54)!important;
    font-size:10px!important;
    font-weight:900!important;
    letter-spacing:.08em!important;
    text-transform:uppercase!important;
  }
  #modal-producto #modal-subtotal{
    margin:0!important;
    color:#ffb347!important;
    font-size:28px!important;
    line-height:1!important;
    white-space:nowrap!important;
  }
  #modal-producto .modal-purchase-actions{
    display:block!important;
    width:100%!important;
    min-height:0!important;
    margin-top:18px!important;
  }
  #modal-producto .modal-button{
    width:100%!important;
    min-height:50px!important;
    padding:13px 16px!important;
    border-radius:14px!important;
    font-size:14px!important;
    font-weight:900!important;
  }

  /* No existe una segunda tarjeta de stock en compra. */
  #modal-producto .modal-purchase-column > .modal-stock-card{display:none!important;}
}

/* Escritorios con poca altura: compacta sin romper el flujo. */
@media (min-width:769px) and (max-height:690px){
  #modal-producto{padding:12px!important;}
  #modal-producto .modal-content{
    width:min(1240px,calc(100vw - 24px))!important;
    height:calc(100vh - 24px)!important;
  }
  #modal-producto .modal-image{padding:16px!important;}
  #modal-producto .modal-desktop-stock-strip{padding:18px 72px 0 24px!important;}
  #modal-producto .modal-desktop-stock-strip .modal-stock-card{min-height:56px!important;padding:11px 15px!important;}
  #modal-producto .modal-info-header{padding:14px 26px 8px!important;}
  #modal-producto .modal-info-header h2{font-size:34px!important;}
  #modal-producto #modal-package{font-size:12px!important;}
  #modal-producto .modal-info-body{padding:0 26px 20px!important;}
  #modal-producto .modal-detail-workspace{row-gap:11px!important;column-gap:16px!important;}
  #modal-producto .modal-tabs{min-height:40px!important;}
  #modal-producto .modal-tab{min-height:40px!important;padding:10px 4px 9px!important;font-size:13px!important;}
  #modal-producto .modal-flavor-tag,
  #modal-producto .modal-surtido-tag{min-height:44px!important;padding-block:9px!important;}
  #modal-producto .modal-purchase-column > .modal-buy{padding:16px!important;}
  #modal-producto .presentation-radio-option{min-height:46px!important;padding:9px 12px!important;}
  #modal-producto .modal-quantity-label{margin-top:12px!important;}
  #modal-producto .modal-purchase-actions{margin-top:12px!important;}
  #modal-producto .modal-button{min-height:44px!important;padding:10px 14px!important;}
}

/* ==========================================================================\n   ETAPA 301 - Detalle producto escritorio: compra completa sin scroll interno\n   - El panel de presentacion deja de tener scroll propio.\n   - Se compactan alturas y separaciones para mantener presentaciones, cantidad,\n     total y CTA visibles dentro de la misma tarjeta.\n   - Movil permanece intacto.\n   ========================================================================== */
@media (min-width:769px){
  #modal-producto .modal-purchase-column{
    overflow:visible!important;
  }
  #modal-producto .modal-purchase-column > .modal-buy{
    height:100%!important;
    min-height:0!important;
    overflow:hidden!important;
    padding:16px 18px!important;
    box-sizing:border-box!important;
  }
  #modal-producto .modal-buy-title{
    margin:0 0 8px!important;
    line-height:1.1!important;
  }
  #modal-producto .buy-type{
    gap:7px!important;
    flex:0 0 auto!important;
  }
  #modal-producto .presentation-radio-option{
    min-height:46px!important;
    padding:9px 13px!important;
    gap:10px!important;
    border-radius:14px!important;
  }
  #modal-producto .presentation-radio-mark{
    width:18px!important;
    height:18px!important;
  }
  #modal-producto .presentation-radio-copy strong{
    font-size:13px!important;
    line-height:1.15!important;
  }
  #modal-producto .modal-quantity-label{
    margin:11px 0 7px!important;
    line-height:1!important;
  }
  #modal-producto .buy-summary-row{
    grid-template-columns:auto minmax(130px,1fr)!important;
    gap:18px!important;
    align-items:center!important;
  }
  #modal-producto .quantity-box{
    grid-template-columns:38px 54px 38px!important;
    border-radius:12px!important;
  }
  #modal-producto .quantity-box button,
  #modal-producto #qty-value{
    height:38px!important;
  }
  #modal-producto #modal-subtotal{
    font-size:25px!important;
  }
  #modal-producto .modal-purchase-actions{
    margin-top:10px!important;
  }
  #modal-producto .modal-button{
    min-height:44px!important;
    padding:10px 14px!important;
  }

  /* Si un producto tiene mas presentaciones, compactarlas de forma progresiva
     en vez de crear una barra de desplazamiento dentro de la tarjeta. */
  #modal-producto .buy-type:has(.presentation-radio-option:nth-child(4)){
    gap:5px!important;
  }
  #modal-producto .buy-type:has(.presentation-radio-option:nth-child(4)) .presentation-radio-option{
    min-height:40px!important;
    padding:7px 11px!important;
  }
  #modal-producto .buy-type:has(.presentation-radio-option:nth-child(5)) .presentation-radio-option{
    min-height:36px!important;
    padding:5px 10px!important;
  }
  #modal-producto .buy-type:has(.presentation-radio-option:nth-child(5)) + .modal-quantity-label{
    margin-top:7px!important;
  }
}

/* ==========================================================================
   ETAPA 302 - Detalle producto escritorio: CTA siempre visible
   - Ajuste fino del panel de compra para que Presentación, Cantidad, Total y
     Agregar al carrito entren completos sin scroll interno.
   - Solo escritorio; móvil permanece igual que en la etapa 298/301.
   ========================================================================== */
@media (min-width:769px){
  #modal-producto .modal-purchase-column > .modal-buy{
    overflow:visible!important;
    padding:14px 16px!important;
  }
  #modal-producto .modal-buy-title{
    margin-bottom:7px!important;
  }
  #modal-producto .buy-type{
    gap:6px!important;
  }
  #modal-producto .presentation-radio-option{
    min-height:42px!important;
    padding:7px 12px!important;
  }
  #modal-producto .modal-quantity-label{
    margin:8px 0 6px!important;
  }
  #modal-producto .buy-summary-row{
    align-items:center!important;
    gap:14px!important;
  }
  #modal-producto .quantity-box{
    grid-template-columns:36px 50px 36px!important;
  }
  #modal-producto .quantity-box button,
  #modal-producto #qty-value{
    height:36px!important;
  }
  #modal-producto #modal-subtotal{
    font-size:24px!important;
  }
  #modal-producto .modal-purchase-actions{
    margin-top:8px!important;
    flex:0 0 auto!important;
  }
  #modal-producto .modal-button{
    min-height:40px!important;
    padding:9px 14px!important;
  }
}

/* Escritorio de altura reducida: compactación extra sin ocultar ningún control. */
@media (min-width:769px) and (max-height:720px){
  #modal-producto .modal-info-header{
    padding-top:10px!important;
    padding-bottom:6px!important;
  }
  #modal-producto .modal-info-header h2{
    margin-top:3px!important;
    font-size:32px!important;
  }
  #modal-producto #modal-package{
    margin-top:2px!important;
    line-height:1.25!important;
  }
  #modal-producto .modal-info-body{
    padding-bottom:12px!important;
  }
  #modal-producto .modal-detail-workspace{
    row-gap:8px!important;
  }
  #modal-producto .modal-tabs,
  #modal-producto .modal-tab{
    min-height:36px!important;
  }
  #modal-producto .modal-tab{
    padding-top:8px!important;
    padding-bottom:7px!important;
  }
  #modal-producto .modal-purchase-column > .modal-buy{
    padding:11px 14px!important;
  }
  #modal-producto .modal-buy-title{
    margin-bottom:5px!important;
  }
  #modal-producto .buy-type{
    gap:5px!important;
  }
  #modal-producto .presentation-radio-option{
    min-height:38px!important;
    padding:6px 10px!important;
    border-radius:12px!important;
  }
  #modal-producto .presentation-radio-mark{
    width:17px!important;
    height:17px!important;
  }
  #modal-producto .presentation-radio-copy strong{
    font-size:12px!important;
  }
  #modal-producto .modal-quantity-label{
    margin:6px 0 4px!important;
  }
  #modal-producto .quantity-box{
    grid-template-columns:34px 48px 34px!important;
  }
  #modal-producto .quantity-box button,
  #modal-producto #qty-value{
    height:34px!important;
  }
  #modal-producto #modal-subtotal{
    font-size:23px!important;
  }
  #modal-producto .modal-purchase-actions{
    margin-top:6px!important;
  }
  #modal-producto .modal-button{
    min-height:38px!important;
    padding:8px 12px!important;
  }
}


/* =========================================================
   ETAPA 304 · Modal de producto más simple
   - La cantidad se administra solo desde el carrito.
   - Descripción con mejor legibilidad.
   ========================================================= */
#modal-producto .modal-quantity-label,
#modal-producto .quantity-box{
  display:none!important;
}

#modal-producto .purchase-selection-meta > div:last-child{
  display:none!important;
}

#modal-producto .buy-summary-row{
  display:flex!important;
  justify-content:flex-end!important;
  align-items:center!important;
  margin-top:10px!important;
}

#modal-producto .subtotal-box{
  width:100%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:16px!important;
}

#modal-producto #modal-package{
  font-size:15px!important;
  line-height:1.45!important;
  color:rgba(255,255,255,.86)!important;
}

#modal-producto .modal-purchase-actions{
  margin-top:10px!important;
}

@media (max-width:768px){
  #modal-producto #modal-package{
    font-size:11.5px!important;
    line-height:1.38!important;
  }

  #modal-producto .buy-summary-row{
    margin-top:7px!important;
  }

  #modal-producto .modal-purchase-actions{
    margin-top:7px!important;
  }
}


/* =========================================================
   ETAPA 305 · Ajustes finales del modal de producto
   - Stock simplificado también en móvil.
   - Selector lateral móvil más ancho para nombres completos.
   - TOTAL pasa a PRECIO y gana separación respecto a presentación.
   ========================================================= */
#modal-producto .subtotal-box{
  margin-top:12px!important;
  padding-top:12px!important;
  border-top:1px solid rgba(255,255,255,.09)!important;
}
#modal-producto .subtotal-box > span{
  font-size:11px!important;
  font-weight:800!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
  color:rgba(255,255,255,.62)!important;
}

@media (max-width:768px){
  #modal-producto .modal-detail-workspace{
    grid-template-columns:112px minmax(0,1fr)!important;
    column-gap:10px!important;
  }
  #modal-producto .modal-panels-wrap{
    width:112px!important;
    min-width:112px!important;
    max-width:112px!important;
  }
  #modal-producto .modal-flavor-tag,
  #modal-producto .modal-surtido-tag{
    padding:7px 27px 7px 10px!important;
  }
  #modal-producto .modal-option-name{
    font-size:9.4px!important;
    line-height:1.18!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
  }
  #modal-producto .subtotal-box{
    margin-top:11px!important;
    padding-top:10px!important;
  }
  #modal-producto .modal-mobile-stock-strip .modal-stock-card{
    grid-template-columns:minmax(92px,.9fr) minmax(0,1.55fr)!important;
  }
  #modal-producto .modal-mobile-stock-strip .modal-stock-card p{
    font-size:8.5px!important;
    white-space:normal!important;
  }
}

@media (max-width:380px){
  #modal-producto .modal-detail-workspace{
    grid-template-columns:106px minmax(0,1fr)!important;
    column-gap:8px!important;
  }
  #modal-producto .modal-panels-wrap{
    width:106px!important;
    min-width:106px!important;
    max-width:106px!important;
  }
}


/* ETAPA 307 - catalogo de productos mas compacto en escritorio + decimales tipograficos */
.catalogo-price-value{
  display:flex !important;
  align-items:flex-start;
  gap:0;
  white-space:nowrap;
}
.catalogo-price-currency{font-size:.72em;line-height:1.3;margin-right:5px;font-weight:800}
.catalogo-price-integer{font-size:1em;line-height:1;font-weight:900}
.catalogo-price-decimal{font-size:.56em;line-height:1;font-weight:900;margin-top:.05em;letter-spacing:0}

@media (min-width:1101px){
  .catalogo-grid{gap:28px;padding:24px 6.75% 32px}
  .catalogo-card{border-radius:26px}
  .catalogo-image{height:220px;padding:18px}
  .catalogo-info{padding:18px 26px 16px}
  .catalogo-info h3{font-size:28px;line-height:1.05;margin:0 0 7px}
  .catalogo-info > p:not(.combo-description){
    min-height:34px;
    margin:0 0 12px;
    line-height:1.15;
    display:-webkit-box;
    overflow:hidden;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
  }
  .catalogo-price{gap:2px;margin:0 0 13px}
  .catalogo-price-label{font-size:10.5px}
  .catalogo-price > .catalogo-price-value{font-size:27px;line-height:1}
  .catalogo-price-quantity{font-size:11.5px;margin-top:2px}
  .catalogo-button{min-height:44px;padding:11px 15px;border-radius:15px}
}
@media (min-width:1101px) and (max-height:760px){
  .catalogo-grid{padding-top:18px;padding-bottom:24px}
  .catalogo-image{height:205px;padding:16px}
  .catalogo-info{padding:16px 24px 14px}
  .catalogo-info h3{font-size:27px}
  .catalogo-button{min-height:42px;padding:10px 14px}
}


/* =========================================================
   ETAPA 309 - COMBOS COMPACTOS Y PRECIO JERARQUIZADO
   ========================================================= */
.combo-card .combo-final{
  display:inline-flex;
  align-items:flex-start;
  width:max-content;
  white-space:nowrap;
  gap:0;
}
.combo-card .combo-currency{
  font-size:.64em;
  line-height:1.2;
  margin-right:4px;
  padding-top:.08em;
}
.combo-card .combo-price-integer{
  font-size:1em;
  line-height:1;
}
.combo-card .combo-price-decimal{
  font-size:.56em;
  line-height:1;
  padding-top:.08em;
}

@media (min-width:1101px){
  .combos-grid{
    gap:30px;
  }

  .combo-card .catalogo-info{
    padding:14px 20px 14px;
    gap:3px;
  }

  .combo-card .catalogo-info h3{
    font-size:23px;
    line-height:1.08;
    margin:0 0 3px;
    overflow:hidden;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
  }

  .combo-card[data-title-lines="1"] .catalogo-info h3{
    min-height:1.08em;
    max-height:1.08em;
  }

  .combo-card[data-title-lines="2"] .catalogo-info h3{
    min-height:2.16em;
    max-height:2.16em;
  }

  .combo-card .combo-description{
    font-size:14px;
    line-height:1.24;
    margin:0;
    overflow:hidden;
    display:-webkit-box;
    -webkit-box-orient:vertical;
  }

  .combo-card[data-title-lines="1"] .combo-description{
    --combo-desc-lines:5;
    min-height:calc(5 * 1.24em);
    max-height:calc(5 * 1.24em);
    -webkit-line-clamp:5;
  }

  .combo-card[data-title-lines="2"] .combo-description{
    --combo-desc-lines:4;
    min-height:calc(4 * 1.24em);
    max-height:calc(4 * 1.24em);
    -webkit-line-clamp:4;
  }

  .combo-card.expanded .combo-description{
    min-height:0;
    max-height:520px;
    -webkit-line-clamp:unset;
  }

  .combo-card .combo-more{
    margin:2px 0 3px;
    min-height:27px;
    padding:4px 10px;
    font-size:14px;
  }

  .combo-card .combo-prices{
    gap:2px;
    margin:0 0 7px;
  }

  .combo-card .combo-regular,
  .combo-card .combo-save{
    line-height:1.15;
  }

  .combo-card .combo-final{
    font-size:26px;
  }

  .combo-card .combo-button{
    min-height:42px;
    padding:10px 14px;
  }
}

@media (max-width:1100px){
  .combo-card .combo-final{
    font-size:clamp(22px,6.8vw,27px);
  }
}

/* =========================================================
   ETAPA 311 - CARRITO: PRECIO UNITARIO + RETIRO CONFIRMADO
   ========================================================= */
.cart-item{
  position:relative;
  grid-template-columns:52px minmax(0,1fr);
  min-height:112px;
  padding:10px 46px 10px 10px;
  align-items:start;
}
.cart-item-info{
  display:grid;
  grid-template-rows:auto auto auto auto;
  gap:5px;
  min-width:0;
}
.cart-title h3{
  padding-right:3px;
}
.cart-remove{
  position:absolute!important;
  top:9px;
  right:9px;
  z-index:3;
  width:30px;
  height:30px;
  min-width:30px;
  min-height:30px;
  border-radius:9px;
  background:rgba(255,92,92,.07);
  border:1px solid rgba(255,105,105,.14);
  color:#d5a1a1;
  transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease;
}
.cart-remove:hover,
.cart-remove:focus-visible{
  background:rgba(255,92,92,.17);
  border-color:rgba(255,105,105,.32);
  color:#fff;
  transform:translateY(-1px);
}
.cart-item-unit-price{
  display:flex;
  align-items:baseline;
  gap:5px;
  min-width:0;
  margin-top:1px;
  color:#a9a9a9;
  font-size:10px;
  line-height:1.1;
}
.cart-item-unit-price > span:first-child{
  font-size:9px;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:#888;
}
.cart-item-unit-price strong{
  color:#ffc15e;
  font-weight:800;
}
.cart-item-unit-price small{
  color:#aaa;
  font-size:9px;
  font-weight:700;
}
.cart-item-bottom{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  min-width:0;
  margin-top:2px;
}
.cart-quantity-block,
.cart-item-subtotal{
  display:grid;
  gap:4px;
}
.cart-item-subtotal{
  justify-items:end;
  margin-left:auto;
  text-align:right;
}
.cart-detail-label{
  color:#898989;
  font-size:8px;
  line-height:1;
  font-weight:800;
  letter-spacing:.055em;
  text-transform:uppercase;
}
.cart-item-subtotal strong{
  color:#ffb347;
  line-height:1;
  white-space:nowrap;
}
.cart-money{
  display:inline-flex;
  align-items:flex-start;
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}
.cart-money-currency{
  margin-right:3px;
  font-size:.72em;
  line-height:1.35;
  font-weight:800;
}
.cart-money-major{
  font-size:1em;
  line-height:1;
  font-weight:900;
}
.cart-money-decimals{
  margin-left:1px;
  font-size:.64em;
  line-height:1;
  font-weight:900;
  transform:translateY(-.04em);
}
.cart-item-unit-price .cart-money{
  font-size:14px;
}
.cart-item-subtotal .cart-money{
  font-size:17px;
}
.cart-remove-confirm{
  display:none;
  grid-column:1 / -1;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:4px -35px -1px 0;
  padding:8px 9px;
  border:1px solid rgba(255,179,71,.2);
  border-radius:10px;
  background:linear-gradient(135deg,rgba(52,42,27,.98),rgba(31,28,24,.99));
  color:#f3e1c6;
  font-size:11px;
  font-weight:700;
  animation:cartRemoveConfirmIn .16s ease both;
}
.cart-item.is-confirming-remove .cart-remove-confirm{
  display:flex;
}
.cart-item.is-confirming-remove .cart-remove{
  background:rgba(255,92,92,.18);
  border-color:rgba(255,105,105,.32);
  color:#fff;
}
.cart-remove-confirm-actions{
  display:flex;
  align-items:center;
  gap:6px;
  flex:none;
}
.cart-remove-confirm-actions button{
  min-height:29px;
  padding:6px 10px;
  border-radius:8px;
  border:1px solid rgba(255,255,255,.09);
  font:inherit;
  font-size:10px;
  font-weight:800;
  cursor:pointer;
}
.cart-remove-cancel{
  background:#2b2b2b;
  color:#eee;
}
.cart-remove-confirm-button{
  background:#ffb347;
  border-color:#ffb347!important;
  color:#17120b;
}
.cart-total{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.cart-total-label{
  color:#eee;
  font-size:13px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.035em;
}
#cart-total .cart-money{
  color:#ffb347;
  font-size:18px;
}
@keyframes cartRemoveConfirmIn{
  from{opacity:0;transform:translateY(-3px)}
  to{opacity:1;transform:translateY(0)}
}

@media(max-width:768px){
  .cart-item{
    grid-template-columns:46px minmax(0,1fr);
    min-height:105px;
    padding:8px 41px 8px 8px;
    gap:8px;
  }
  .cart-remove{
    top:7px;
    right:7px;
    width:28px;
    height:28px;
    min-width:28px;
    min-height:28px;
    border-radius:8px;
  }
  .cart-item-info{gap:4px}
  .cart-item-unit-price > span:first-child{font-size:7.5px}
  .cart-item-unit-price small{font-size:8px}
  .cart-item-unit-price .cart-money{font-size:13px}
  .cart-item-bottom{gap:8px}
  .cart-detail-label{font-size:7px}
  .cart-item-subtotal .cart-money{font-size:15.5px}
  .cart-remove-confirm{
    margin:4px -32px 0 0;
    padding:7px 8px;
    gap:7px;
    font-size:9.5px;
  }
  .cart-remove-confirm-actions{gap:5px}
  .cart-remove-confirm-actions button{
    min-height:27px;
    padding:5px 8px;
    font-size:9px;
  }
  .cart-total-label{font-size:10px}
  #cart-total .cart-money{font-size:16px}
}


/* =========================================================
   ETAPA 312 - CARRITO: CONFIRMACION FLOTANTE + MAS COMPACTO
   ========================================================= */
.cart-quantity-block{
  gap:0;
  align-self:end;
}
.cart-item-bottom{
  margin-top:1px;
}
.cart-remove-confirm{
  display:none!important;
}
.cart-item.is-confirming-remove .cart-remove-confirm{
  display:none!important;
}
@media(max-width:768px){
  .cart-item{
    min-height:98px;
  }
  .cart-item-info{
    gap:3px;
  }
  .cart-item-bottom{
    margin-top:0;
  }
}
