/* ============================================================
   INTEGRALSOFT · EXPERIENCIA MESAS
   Estilos compartidos por tienda, producto, promo, carrito y pago.
   Objetivo: botones grandes, lectura clara y guía permanente.
   ============================================================ */

:root{
  --mesa-primary:#ff6b00;
  --mesa-primary-dark:#e55500;
  --mesa-secondary:#ffbe0b;
  --mesa-secondary-soft:#fff2bd;
  --mesa-success:#20a464;
  --mesa-danger:#e5484d;
  --mesa-ink:#202124;
  --mesa-muted:#68707d;
  --mesa-bg:#f7f4ef;
  --mesa-card:#ffffff;
  --mesa-line:#e9e3da;
  --mesa-shadow:0 18px 50px rgba(42,32,18,.13);
  --mesa-shadow-soft:0 8px 24px rgba(42,32,18,.10);
  --mesa-radius:28px;
  --mesa-radius-sm:18px;
}

/* Base visual: cálida, limpia y de alto contraste. */
html{ scroll-behavior:smooth; }
body,
body[data-theme="light"]{
  color:var(--mesa-ink) !important;
  background:
    radial-gradient(900px 520px at -8% -10%, rgba(255,190,11,.24), transparent 62%),
    radial-gradient(900px 560px at 108% 0%, rgba(255,107,0,.16), transparent 62%),
    linear-gradient(180deg,#fffdf8 0%,var(--mesa-bg) 100%) !important;
  font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  -webkit-tap-highlight-color:transparent;
}

body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  pointer-events:none;
  opacity:.32;
  background-image:radial-gradient(rgba(44,42,38,.12) .7px, transparent .7px);
  background-size:22px 22px;
}

/* Todos los elementos táctiles deben sentirse grandes y físicos. */
button,a,input,textarea,select{ touch-action:manipulation; }
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{
  outline:4px solid rgba(255,190,11,.42) !important;
  outline-offset:3px;
}

/* ============================================================
   CABECERA DE PROGRESO: muestra siempre en qué paso está el cliente.
   ============================================================ */
.mesa-flow{
  position:fixed;
  top:14px;
  left:50%;
  transform:translateX(-50%);
  z-index:2055;
  display:flex;
  align-items:center;
  gap:7px;
  padding:8px;
  max-width:min(760px,calc(100vw - 170px));
  border:1px solid rgba(255,255,255,.9);
  border-radius:999px;
  background:rgba(255,255,255,.91);
  box-shadow:0 12px 35px rgba(53,39,20,.16);
  backdrop-filter:blur(18px);
}
.mesa-flow-step{
  min-width:118px;
  min-height:44px;
  padding:8px 14px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  color:#8a8177;
  font-size:13px;
  font-weight:900;
  white-space:nowrap;
  transition:transform .2s ease, background .2s ease, color .2s ease;
}
.mesa-flow-step .num{
  width:25px;
  height:25px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#ede8e1;
  font-size:12px;
}
.mesa-flow-step.done{ color:var(--mesa-success); }
.mesa-flow-step.done .num{ background:#dff5e9; }
.mesa-flow-step.active{
  color:#fff;
  background:linear-gradient(135deg,var(--mesa-primary),#ff8a00);
  box-shadow:0 8px 18px rgba(255,107,0,.28);
  transform:translateY(-1px);
}
.mesa-flow-step.active .num{ color:var(--mesa-primary-dark); background:#fff; }

/* ============================================================
   ASISTENTE FLOTANTE: explica qué hacer sin tapar la operación.
   ============================================================ */
/* ============================================================
   ASISTENTE INFERIOR: acompaña sin tapar el contenido.
   ============================================================ */
.mesa-assistant{
  position:fixed;
  right:20px;
  bottom:22px;
  z-index:2060;
  width:58px;
  height:58px;
}
.mesa-assistant-button{
  width:58px;
  height:58px;
  border:1px solid rgba(255,255,255,.48);
  border-radius:20px;
  color:#fff;
  background:linear-gradient(145deg,rgba(255,107,0,.82),rgba(255,144,0,.76));
  backdrop-filter:blur(14px);
  box-shadow:0 12px 28px rgba(72,42,13,.20);
  font-size:24px;
  cursor:pointer;
  position:relative;
  animation:totemFloat 3.2s ease-in-out infinite;
  opacity:.82;
}
.mesa-assistant-button:hover,.mesa-assistant-button:focus{ opacity:1; }
.mesa-assistant-button::after{
  content:"";
  position:absolute;
  inset:-5px;
  border:2px solid rgba(255,107,0,.18);
  border-radius:25px;
  animation:totemPulse 2.2s ease-out infinite;
}
.mesa-assistant-panel{
  position:absolute;
  right:0;
  bottom:72px;
  width:min(390px,calc(100vw - 28px));
  padding:17px 19px;
  border-radius:22px;
  color:var(--mesa-ink);
  background:rgba(255,255,255,.78);
  border:1px solid rgba(255,255,255,.74);
  box-shadow:0 18px 46px rgba(45,34,23,.18);
  backdrop-filter:blur(18px) saturate(1.15);
  transform-origin:bottom right;
  animation:totemPopBottom .24s ease both;
}
.mesa-assistant-panel[hidden]{ display:none !important; }
.mesa-assistant-panel::before{
  content:"";
  position:absolute;
  right:21px;
  bottom:-8px;
  width:16px;
  height:16px;
  background:rgba(255,255,255,.78);
  border-right:1px solid rgba(255,255,255,.74);
  border-bottom:1px solid rgba(255,255,255,.74);
  transform:rotate(45deg);
}
.mesa-assistant-title{
  display:flex;
  align-items:center;
  gap:9px;
  padding-right:28px;
  font-size:17px;
  font-weight:1000;
  margin-bottom:4px;
}
.mesa-assistant-title i{ color:var(--mesa-primary); }
.mesa-assistant-text{
  color:#5d574f;
  font-size:14px;
  line-height:1.45;
  font-weight:760;
}
.mesa-assistant-close{
  position:absolute;
  right:10px;
  top:9px;
  width:32px;
  height:32px;
  border:0;
  border-radius:50%;
  background:rgba(255,255,255,.42);
  color:#716b63;
  font-size:16px;
}
.mesa-assistant-tip{
  margin-top:10px;
  padding:9px 11px;
  border-radius:13px;
  background:rgba(255,247,224,.66);
  color:#755109;
  font-size:12px;
  font-weight:850;
}

/* Aviso contextual breve usado por JS luego de una acción. */
.mesa-toast{
  position:fixed;
  left:50%;
  bottom:28px;
  z-index:5000;
  max-width:min(560px,calc(100vw - 28px));
  transform:translate(-50%,20px);
  opacity:0;
  display:flex;
  align-items:center;
  gap:12px;
  padding:15px 20px;
  border-radius:18px;
  color:#fff;
  background:#25221f;
  box-shadow:0 18px 45px rgba(0,0,0,.28);
  font-weight:900;
  transition:.25s ease;
  pointer-events:none;
}
.mesa-toast.show{ opacity:1; transform:translate(-50%,0); }
.mesa-toast.success{ background:var(--mesa-success); }
.mesa-toast.warning{ background:#b87300; }
.mesa-toast.error{ background:var(--mesa-danger); }

/* ============================================================
   AVISOS NATIVOS DEL MESAS: reemplazan las ventanas viejas.
   ============================================================ */
.mesa-native-toast{
  position:fixed;
  left:50%;
  bottom:24px;
  z-index:6100;
  width:min(620px,calc(100vw - 110px));
  transform:translate(-50%,24px);
  opacity:0;
  pointer-events:none;
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px 18px;
  border:1px solid rgba(255,255,255,.58);
  border-radius:18px;
  color:#26211d;
  background:rgba(255,255,255,.76);
  backdrop-filter:blur(18px) saturate(1.15);
  box-shadow:0 16px 38px rgba(42,32,22,.18);
  font-weight:780;
  transition:opacity .22s ease,transform .22s ease;
}
.mesa-native-toast.show{ opacity:.96; transform:translate(-50%,0); }
.mesa-native-toast>i{ font-size:22px; color:var(--mesa-primary); }
.mesa-native-toast strong{ font-weight:1000; }
.mesa-native-toast.success>i{ color:var(--mesa-success); }
.mesa-native-toast.warning>i{ color:#bd7700; }
.mesa-native-toast.error>i{ color:var(--mesa-danger); }

.mesa-dialog-overlay{
  position:fixed;
  inset:0;
  z-index:6200;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding:22px;
  background:rgba(24,18,13,.18);
  backdrop-filter:blur(5px);
  opacity:0;
  transition:opacity .18s ease;
}
.mesa-dialog-overlay.show{ opacity:1; }
.mesa-dialog-card{
  width:min(560px,100%);
  padding:25px;
  border:1px solid rgba(255,255,255,.74);
  border-radius:28px;
  background:rgba(255,255,255,.88);
  color:var(--mesa-ink);
  backdrop-filter:blur(22px) saturate(1.15);
  box-shadow:0 24px 70px rgba(38,28,18,.24);
  transform:translateY(30px) scale(.98);
  transition:transform .2s ease;
}
.mesa-dialog-overlay.show .mesa-dialog-card{ transform:translateY(0) scale(1); }
.mesa-dialog-icon{
  width:54px;
  height:54px;
  display:grid;
  place-items:center;
  border-radius:18px;
  background:#fff2e6;
  color:var(--mesa-primary);
  font-size:25px;
  margin-bottom:13px;
}
.mesa-dialog-icon.success{ background:#e5f7ed;color:var(--mesa-success); }
.mesa-dialog-icon.warning,.mesa-dialog-icon.question{ background:#fff4da;color:#b87300; }
.mesa-dialog-icon.error{ background:#ffe8e7;color:var(--mesa-danger); }
.mesa-dialog-title{ margin:0 0 7px; font-size:25px; font-weight:1000; }
.mesa-dialog-content{ color:var(--mesa-muted); line-height:1.5; font-weight:720; max-height:45vh; overflow:auto; }
.mesa-dialog-actions{ display:flex; justify-content:flex-end; gap:10px; margin-top:22px; }
.mesa-dialog-actions button{
  min-height:52px;
  padding:0 20px;
  border-radius:16px;
  font-weight:950;
}
.mesa-dialog-cancel{ border:1px solid var(--mesa-line); background:rgba(255,255,255,.58); color:var(--mesa-ink); }
.mesa-dialog-confirm{ border:0; background:linear-gradient(135deg,var(--mesa-primary),#ff8a00); color:#fff; }

/* ============================================================
   BOTONES, CAMPOS Y TARJETAS COMPARTIDAS.
   ============================================================ */
.btn,
.btn-pill,
.btn-cta,
.btn-ghost,
.btn-linkish,
.pay-btn{
  min-height:54px;
  border-radius:17px !important;
  font-weight:950 !important;
  letter-spacing:.1px;
  transition:transform .16s ease, box-shadow .16s ease, filter .16s ease !important;
}
.btn:hover,.btn-pill:hover,.btn-cta:hover,.btn-ghost:hover,.btn-linkish:hover,.pay-btn:hover{
  transform:translateY(-2px);
}
.btn:active,.btn-pill:active,.btn-cta:active,.btn-ghost:active,.btn-linkish:active,.pay-btn:active{
  transform:scale(.975);
}
.btn-primary,.btn-cta,.pay-btn.btn-primary{
  border:0 !important;
  color:#fff !important;
  background:linear-gradient(135deg,var(--mesa-primary),#ff8f00) !important;
  box-shadow:0 12px 24px rgba(255,107,0,.24) !important;
}
.btn-secondary,.btn-outline-light,.btn-ghost,.btn-linkish{
  color:var(--mesa-ink) !important;
  border:1px solid var(--mesa-line) !important;
  background:#fff !important;
  box-shadow:var(--mesa-shadow-soft) !important;
}
.btn-danger{ border:0 !important; background:var(--mesa-danger) !important; }
.form-control,.form-select{
  min-height:58px;
  border:2px solid #e7e0d7 !important;
  border-radius:17px !important;
  color:var(--mesa-ink) !important;
  background:#fff !important;
  box-shadow:none !important;
  font-size:17px;
  font-weight:750;
}
.form-control:focus,.form-select:focus{
  border-color:var(--mesa-secondary) !important;
  box-shadow:0 0 0 5px rgba(255,190,11,.18) !important;
}

.card-surface,.surface,.promo-card,.hero,.sidebar,.ticket,.pay-tile,.info-box{
  color:var(--mesa-ink) !important;
  border:1px solid var(--mesa-line) !important;
  background:rgba(255,255,255,.97) !important;
  box-shadow:var(--mesa-shadow) !important;
}
.muted,.surface-head .muted,.hint,.ticket .mut,.item-meta,.add-sub{
  color:var(--mesa-muted) !important;
}

/* Efecto de onda al tocar un botón. */
.mesa-ripple{ position:relative; overflow:hidden; }
.mesa-ripple-dot{
  position:absolute;
  border-radius:50%;
  pointer-events:none;
  background:rgba(255,255,255,.48);
  transform:scale(0);
  animation:totemRipple .55s ease-out;
}

/* ============================================================
   TIENDA / CATÁLOGO
   ============================================================ */
body[data-mesa-page="catalogo"]{ padding-top:88px; }
body[data-mesa-page="catalogo"] .kiosk{
  grid-template-columns:250px minmax(0,1fr) 350px !important;
  gap:18px !important;
  padding:16px 20px 20px !important;
}
body[data-mesa-page="catalogo"] .sidebar,
body[data-mesa-page="catalogo"] .ticket,
body[data-mesa-page="catalogo"] .content{
  height:calc(100dvh - 124px) !important;
}
body[data-mesa-page="catalogo"] .sidebar{
  border-radius:28px !important;
  padding:16px !important;
}
body[data-mesa-page="catalogo"] .logo-box{
  width:104px !important;
  height:104px !important;
  border:0 !important;
  background:#fff4d0 !important;
  box-shadow:inset 0 0 0 1px #f4df9d;
}
body[data-mesa-page="catalogo"] .logo-box img{ width:155px !important; height:155px !important; }
body[data-mesa-page="catalogo"] #btnTheme{ display:none; }
body[data-mesa-page="catalogo"] .cart-mini{
  color:#7b4c00 !important;
  background:linear-gradient(135deg,#fff5cf,#fff9ea) !important;
  border:1px solid #f3dda0 !important;
  border-radius:17px !important;
  padding:13px !important;
}
body[data-mesa-page="catalogo"] .cat-btn{
  min-height:82px !important;
  border:1px solid #ece4dc !important;
  border-radius:19px !important;
  color:#fff !important;
  background:#35312c !important;
  box-shadow:0 7px 16px rgba(47,39,29,.12);
}
body[data-mesa-page="catalogo"] .cat-btn.active{
  outline:4px solid rgba(255,190,11,.34) !important;
  box-shadow:0 0 0 2px var(--mesa-secondary),0 10px 24px rgba(42,32,18,.18) !important;
}
body[data-mesa-page="catalogo"] .cat-btn::after{
  background:linear-gradient(90deg,rgba(24,20,16,.82),rgba(24,20,16,.20)) !important;
}
body[data-mesa-page="catalogo"] .cat-btn span{ font-size:16px; }

.catalog-hero{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  min-height:126px;
  padding:22px 26px;
  overflow:hidden;
  border-radius:28px;
  color:#fff;
  background:linear-gradient(120deg,#ff6400,#ff8b00 58%,#ffc107);
  box-shadow:0 17px 38px rgba(255,107,0,.24);
}
.catalog-hero::after{
  content:"";
  position:absolute;
  width:260px;
  height:260px;
  right:-65px;
  top:-102px;
  border:40px solid rgba(255,255,255,.15);
  border-radius:50%;
}
.catalog-hero-copy{ position:relative; z-index:1; }
.catalog-hero-kicker{
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin-bottom:5px;
  padding:5px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.18);
  font-size:12px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.8px;
}
.catalog-hero h1{ margin:0; font-size:clamp(25px,2.5vw,39px); font-weight:1000; line-height:1.05; }
.catalog-hero p{ margin:7px 0 0; opacity:.93; font-size:15px; font-weight:750; }
.catalog-search{
  position:relative;
  z-index:1;
  width:min(390px,43%);
  flex:0 0 auto;
}
.catalog-search .form-control{
  min-height:62px;
  padding-left:52px;
  padding-right:122px;
  border:0 !important;
  box-shadow:0 12px 28px rgba(105,54,0,.18) !important;
}
.catalog-search > i{
  position:absolute;
  left:20px;
  top:50%;
  transform:translateY(-50%);
  color:#8f8274;
  z-index:2;
}
.catalog-search button{
  position:absolute;
  right:6px;
  top:6px;
  min-height:50px;
  padding:0 18px;
}

body[data-mesa-page="catalogo"] .content{ gap:14px !important; }
body[data-mesa-page="catalogo"] .topbar{ padding:0 !important; background:none !important; }
body[data-mesa-page="catalogo"] .catalogo{
  grid-template-columns:repeat(auto-fill,minmax(225px,1fr)) !important;
  gap:18px !important;
}
body[data-mesa-page="catalogo"] .card.product{
  border:1px solid var(--mesa-line) !important;
  border-radius:25px !important;
  color:var(--mesa-ink) !important;
  background:#fff !important;
  box-shadow:var(--mesa-shadow-soft) !important;
  transition:transform .2s ease,box-shadow .2s ease !important;
}
body[data-mesa-page="catalogo"] .card.product:hover{
  transform:translateY(-6px);
  box-shadow:0 20px 42px rgba(42,32,18,.17) !important;
}
body[data-mesa-page="catalogo"] .card.product .card-img-top{
  height:190px !important;
  object-fit:cover;
  background:#f3eee8;
}
body[data-mesa-page="catalogo"] .card.product .card-body{ padding:16px !important; }
body[data-mesa-page="catalogo"] .card-title{
  min-height:48px;
  color:var(--mesa-ink) !important;
  font-size:18px !important;
  font-weight:950 !important;
  line-height:1.22;
}
body[data-mesa-page="catalogo"] .price{
  color:var(--mesa-primary-dark) !important;
  font-size:25px !important;
  font-weight:1000 !important;
}
body[data-mesa-page="catalogo"] .ticket{
  padding:18px !important;
  border-radius:28px !important;
}
body[data-mesa-page="catalogo"] .ticket-title{ color:var(--mesa-ink) !important; font-size:20px !important; }
body[data-mesa-page="catalogo"] .ticket .tprice{ color:var(--mesa-primary-dark) !important; }
body[data-mesa-page="catalogo"] .ticket-total{
  margin-top:8px;
  padding:15px !important;
  border-radius:18px;
  color:#fff;
  background:#2c2925;
}
body[data-mesa-page="catalogo"] .ticket-actions{ display:grid !important; grid-template-columns:1fr 1.35fr; }

/* ============================================================
   DETALLE DE PRODUCTO
   ============================================================ */
body[data-mesa-page="producto"]{ padding-top:82px; }
body[data-mesa-page="producto"] .page-wrap{ max-width:1450px; margin:auto; padding:18px 26px 42px !important; }
body[data-mesa-page="producto"] .card-surface{ border-radius:32px !important; overflow:hidden; }
body[data-mesa-page="producto"] .media-wrap{ border-radius:25px !important; background:#f4efe8 !important; }
body[data-mesa-page="producto"] .section{ padding:28px !important; }
body[data-mesa-page="producto"] .title{ color:var(--mesa-ink) !important; font-size:clamp(30px,4vw,52px) !important; }
body[data-mesa-page="producto"] .price{ color:var(--mesa-primary-dark) !important; }
body[data-mesa-page="producto"] .qty-wrap{
  display:grid !important;
  grid-template-columns:70px 95px 70px !important;
  width:max-content;
  padding:7px;
  border:2px solid #eee5da;
  border-radius:20px;
  background:#fffaf2;
}
body[data-mesa-page="producto"] .qty-btn{
  width:58px !important;
  height:58px !important;
  border:0 !important;
  border-radius:15px !important;
  color:var(--mesa-primary-dark) !important;
  background:#fff0d9 !important;
  font-size:31px !important;
  font-weight:900;
}
body[data-mesa-page="producto"] .qty{ border:0 !important; text-align:center; font-size:25px !important; }
body[data-mesa-page="producto"] .add-row,
body[data-mesa-page="producto"] .info-box{
  border-radius:19px !important;
  border:1px solid var(--mesa-line) !important;
  background:#fff !important;
}
body[data-mesa-page="producto"] .chip{
  color:#665e55 !important;
  background:#f8f3ed !important;
  border:1px solid #e7dfd5 !important;
}
body[data-mesa-page="producto"] .form-check-input:checked{
  border-color:var(--mesa-primary) !important;
  background-color:var(--mesa-primary) !important;
}

/* ============================================================
   ARMADO DE PROMOCIONES
   ============================================================ */
body[data-mesa-page="promo"]{ padding:96px 0 120px; }
body[data-mesa-page="promo"] .promo-sticky{
  position:relative !important;
  top:auto !important;
  max-width:1380px;
  margin:0 auto 18px;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
body[data-mesa-page="promo"] .promo-bar{
  min-height:118px;
  padding:22px 26px !important;
  border-radius:28px;
  color:#fff;
  background:linear-gradient(120deg,#ff6400,#ff8a00,#ffc107);
  box-shadow:0 17px 38px rgba(255,107,0,.24);
}
body[data-mesa-page="promo"] .promo-title{
  color:#fff !important;
  background:none !important;
  font-size:clamp(22px,3vw,34px);
}
body[data-mesa-page="promo"] .promo-progress{ background:rgba(255,255,255,.32) !important; }
body[data-mesa-page="promo"] .promo-progress>span{ background:#fff !important; }
body[data-mesa-page="promo"] .promo-badge{ background:rgba(255,255,255,.2) !important; }
body[data-mesa-page="promo"] .promo-card{ border-radius:30px !important; }
body[data-mesa-page="promo"] .table-responsive{ overflow:visible !important; }
body[data-mesa-page="promo"] table{ display:none; }

/* El nuevo selector de promo usa tarjetas grandes y controles de cantidad. */
.promo-option-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(250px,1fr));
  gap:17px;
}
.promo-option-card{
  position:relative;
  min-height:225px;
  padding:20px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  border:2px solid var(--mesa-line);
  border-radius:24px;
  background:#fff;
  box-shadow:0 8px 21px rgba(42,32,18,.08);
  transition:.2s ease;
}
.promo-option-card.selected{
  border-color:var(--mesa-secondary);
  background:linear-gradient(180deg,#fffdf7,#fff8e6);
  box-shadow:0 0 0 4px rgba(255,190,11,.18),0 14px 30px rgba(42,32,18,.12);
}
.promo-option-icon{
  width:55px;
  height:55px;
  display:grid;
  place-items:center;
  border-radius:17px;
  color:var(--mesa-primary-dark);
  background:#fff0d9;
  font-size:23px;
}
.promo-option-name{ margin-top:14px; font-size:20px; font-weight:1000; line-height:1.17; }
.promo-option-meta{ margin-top:7px; color:var(--mesa-muted); font-size:13px; font-weight:800; }
.promo-option-price{ margin-top:8px; color:var(--mesa-primary-dark); font-size:18px; font-weight:1000; }
.promo-qty-control{
  margin-top:18px;
  display:grid;
  grid-template-columns:52px 1fr 52px;
  gap:8px;
  align-items:center;
}
.promo-qty-control button{
  width:52px;
  height:52px;
  border:0;
  border-radius:15px;
  font-size:24px;
  font-weight:1000;
  color:var(--mesa-primary-dark);
  background:#fff0d9;
}
.promo-qty-control button:disabled{ opacity:.35; }
.promo-qty-value{
  height:52px;
  display:grid;
  place-items:center;
  border-radius:15px;
  color:var(--mesa-ink);
  background:#f4f0eb;
  font-size:22px;
  font-weight:1000;
}
.promo-category-guide{
  margin:0 0 18px;
  padding:18px 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  border-radius:20px;
  color:#5f4300;
  background:linear-gradient(135deg,#fff2bb,#fff9e7);
  border:1px solid #f0d77d;
}
.promo-category-guide strong{ font-size:21px; }
.promo-remaining{
  flex:0 0 auto;
  min-width:115px;
  padding:10px 14px;
  text-align:center;
  border-radius:15px;
  color:#fff;
  background:#2c2925;
  font-weight:1000;
}
body[data-mesa-page="promo"] .selected-products{
  padding:20px;
  border-radius:22px;
  background:#f8f4ef;
  border:1px solid var(--mesa-line);
}
body[data-mesa-page="promo"] .selected-product{
  color:var(--mesa-ink) !important;
  background:#fff !important;
  border:1px solid var(--mesa-line) !important;
}
body[data-mesa-page="promo"] .confirm-footer{
  background:rgba(255,255,255,.96) !important;
  border:1px solid var(--mesa-line) !important;
}

/* ============================================================
   CARRITO Y CUENTA / PAGO
   ============================================================ */
body[data-mesa-page="carrito"],body[data-mesa-page="pago"]{ padding-top:86px; }
body[data-mesa-page="carrito"] .page,body[data-mesa-page="pago"] .page{
  max-width:1250px;
  margin:auto;
  padding-left:24px !important;
  padding-right:24px !important;
}
body[data-mesa-page="carrito"] .hero,body[data-mesa-page="pago"] .hero{
  border-radius:28px !important;
  color:#fff !important;
  background:linear-gradient(120deg,#ff6400,#ff8a00,#ffc107) !important;
}
body[data-mesa-page="carrito"] .hero h2,body[data-mesa-page="pago"] .hero h2,
body[data-mesa-page="carrito"] .hero .sub,body[data-mesa-page="pago"] .hero .sub{ color:#fff !important; }
body[data-mesa-page="carrito"] .surface,body[data-mesa-page="pago"] .surface{ border-radius:28px !important; }
body[data-mesa-page="carrito"] .surface-head,body[data-mesa-page="pago"] .surface-head{
  color:var(--mesa-ink) !important;
  background:#fffaf3 !important;
}
body[data-mesa-page="carrito"] .item,body[data-mesa-page="pago"] .item{
  border-color:var(--mesa-line) !important;
  background:#fff !important;
}
body[data-mesa-page="carrito"] .avatar,body[data-mesa-page="pago"] .avatar{
  background:#f6efe6 !important;
  border:1px solid #e9dfd2 !important;
}
body[data-mesa-page="carrito"] .item-name,body[data-mesa-page="pago"] .item-name{ color:var(--mesa-ink) !important; }
body[data-mesa-page="carrito"] .chip,body[data-mesa-page="pago"] .chip{
  color:#6c6258 !important;
  background:#f6f1eb !important;
  border-color:#e9e0d6 !important;
}
body[data-mesa-page="carrito"] .sticky-bottom,body[data-mesa-page="pago"] .sticky-pay{
  border-top:1px solid rgba(65,52,38,.12) !important;
  background:rgba(255,255,255,.93) !important;
  backdrop-filter:blur(18px);
}
body[data-mesa-page="pago"] .pay-tile{ border-radius:23px !important; }
body[data-mesa-page="pago"] .pay-tile h6{ color:var(--mesa-ink) !important; }
body[data-mesa-page="pago"] .pay-tile p{ color:var(--mesa-muted) !important; }
body[data-mesa-page="pago"] .modal-content{
  border:1px solid var(--mesa-line) !important;
  border-radius:28px !important;
  color:var(--mesa-ink) !important;
  background:#fff !important;
}
body[data-mesa-page="pago"] .modal-header,body[data-mesa-page="pago"] .modal-footer{ border-color:var(--mesa-line) !important; }

/* Mensaje visual cuando una sección requiere atención. */
.mesa-attention{ animation:totemAttention .75s ease 2; }

/* ============================================================
   RESPONSIVE: en pantallas chicas conserva la guía sin invadir.
   ============================================================ */
@media (max-width:1200px){
  .mesa-flow-step{ min-width:auto; }
  body[data-mesa-page="catalogo"] .kiosk{ grid-template-columns:210px minmax(0,1fr) 310px !important; }
  .catalog-search{ width:46%; }
}
@media (max-width:991px){
  .mesa-flow{ max-width:calc(100vw - 105px); left:12px; transform:none; overflow:auto; justify-content:flex-start; }
  .mesa-flow-step{ min-width:110px; }
  .mesa-assistant{ right:13px; bottom:14px; }
  .mesa-assistant-button{ width:58px; height:58px; border-radius:19px; }
  body[data-mesa-page="catalogo"]{ padding-top:79px; }
  body[data-mesa-page="catalogo"] .kiosk{ display:block !important; padding:12px !important; }
  body[data-mesa-page="catalogo"] .content{ height:calc(100dvh - 100px) !important; }
  .catalog-hero{ min-height:150px; align-items:flex-start; flex-direction:column; }
  .catalog-search{ width:100%; }
  body[data-mesa-page="catalogo"] .catalogo{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
  body[data-mesa-page="producto"] .section{ padding:20px !important; }
}
@media (max-width:600px){
  .mesa-flow{ gap:3px; padding:5px; }
  .mesa-flow-step{ min-width:51px; width:51px; padding:7px; }
  .mesa-flow-step .label{ display:none; }
  .mesa-assistant-panel{ right:-1px; bottom:68px; }
  .catalog-hero{ padding:18px; }
  .catalog-hero h1{ font-size:27px; }
  .catalog-search .form-control{ padding-right:72px; }
  .catalog-search button{ width:54px; padding:0; font-size:0; }
  .catalog-search button i{ font-size:17px; }
  body[data-mesa-page="catalogo"] .catalogo{ grid-template-columns:1fr !important; }
  body[data-mesa-page="catalogo"] .card.product .card-img-top{ height:205px !important; }
  .promo-option-grid{ grid-template-columns:1fr; }
  body[data-mesa-page="carrito"] .page,body[data-mesa-page="pago"] .page{ padding-left:12px !important; padding-right:12px !important; }
}

/* Animaciones cortas: dan respuesta sin ralentizar el flujo. */
@keyframes totemFloat{ 0%,100%{transform:translateY(0)} 50%{transform:translateY(5px)} }
@keyframes totemPulse{ 0%{transform:scale(.86);opacity:.75} 80%,100%{transform:scale(1.25);opacity:0} }
@keyframes totemPop{ from{opacity:0;transform:scale(.88) translateY(-8px)} to{opacity:1;transform:scale(1) translateY(0)} }
@keyframes totemPopBottom{ from{opacity:0;transform:scale(.92) translateY(9px)} to{opacity:1;transform:scale(1) translateY(0)} }
@keyframes totemRipple{ to{transform:scale(4);opacity:0} }
@keyframes totemAttention{ 0%,100%{transform:scale(1)} 50%{transform:scale(1.025);box-shadow:0 0 0 7px rgba(255,190,11,.25)} }


@media (max-width:600px){
  .mesa-native-toast{ width:calc(100vw - 92px); left:12px; transform:translate(0,24px); bottom:16px; }
  .mesa-native-toast.show{ transform:translate(0,0); }
  .mesa-dialog-overlay{ padding:12px; }
  .mesa-dialog-card{ border-radius:24px; padding:21px; }
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}

/* ============================================================
   GUÍAS INTERNAS: dividen una pantalla en micro pasos simples.
   ============================================================ */
.mesa-inline-guide{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin:16px 0 20px;
}
.mesa-inline-guide .guide-item{
  min-height:72px;
  padding:13px 14px;
  display:flex;
  align-items:center;
  gap:11px;
  border:1px solid var(--mesa-line);
  border-radius:18px;
  color:var(--mesa-muted);
  background:#faf7f3;
  font-size:13px;
  font-weight:850;
  line-height:1.25;
}
.mesa-inline-guide .guide-item .guide-num{
  width:34px;
  height:34px;
  flex:0 0 auto;
  display:grid;
  place-items:center;
  border-radius:12px;
  color:var(--mesa-primary-dark);
  background:#ffe9cb;
  font-size:15px;
  font-weight:1000;
}
.mesa-inline-guide .guide-item strong{ display:block; color:var(--mesa-ink); font-size:14px; }
.mesa-inline-guide .guide-item.active{
  border-color:#f2cd56;
  background:linear-gradient(135deg,#fff2bd,#fff9e9);
  box-shadow:0 8px 18px rgba(137,101,0,.10);
}
.mesa-inline-guide.two{ grid-template-columns:repeat(2,minmax(0,1fr)); }
@media(max-width:700px){
  .mesa-inline-guide,.mesa-inline-guide.two{ grid-template-columns:1fr; }
}

/* Ajuste de altura: la barra de pasos ocupa espacio real sobre el catálogo. */
body[data-mesa-page="catalogo"] .kiosk{ height:calc(100dvh - 88px) !important; }
@media(max-width:991px){
  body[data-mesa-page="catalogo"] .kiosk{ height:calc(100dvh - 79px) !important; }
}


/* ============================================================
   AJUSTES EXCLUSIVOS DEL SISTEMA DE PEDIDOS EN MESA
   ============================================================ */
body[data-mesa-page="producto"],
body[data-mesa-page="promo"],
body[data-mesa-page="carrito"],
body[data-mesa-page="cuenta"]{
  padding-top:84px !important;
  color:var(--mesa-ink) !important;
  background:
    radial-gradient(900px 540px at -8% -10%, rgba(255,190,11,.22), transparent 62%),
    radial-gradient(850px 540px at 108% 0%, rgba(255,107,0,.13), transparent 62%),
    linear-gradient(180deg,#fffdf8 0%,#f7f4ef 100%) !important;
}

/* La ayuda se mantiene abajo y translúcida para no tapar la operación. */
.mesa-assistant{ right:14px !important; bottom:14px !important; }
.mesa-assistant-panel{
  background:rgba(255,255,255,.78) !important;
  border-color:rgba(255,255,255,.82) !important;
  box-shadow:0 12px 34px rgba(42,32,18,.15) !important;
  backdrop-filter:blur(16px) saturate(1.1) !important;
}
.mesa-assistant-button{ opacity:.84; }

/* Guías cortas dentro de la vista. */
.mesa-inline-guide{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin:12px 0 18px;
}
.mesa-inline-guide.three{ grid-template-columns:repeat(3,minmax(0,1fr)); }
.mesa-inline-guide .guide-item{
  display:flex;
  align-items:center;
  gap:11px;
  min-height:62px;
  padding:11px 13px;
  border:1px solid #e8e1d7;
  border-radius:18px;
  color:#5f6673;
  background:rgba(255,255,255,.72);
}
.mesa-inline-guide .guide-item.active{
  color:#302a24;
  border-color:#ffc84a;
  background:linear-gradient(135deg,#fff7d8,#fffaf0);
}
.mesa-inline-guide .guide-num{
  width:32px;height:32px;flex:0 0 32px;
  display:grid;place-items:center;
  border-radius:50%;
  color:#e85d00;
  background:#fff0d9;
  font-weight:1000;
}
.mesa-inline-guide strong{ display:block; color:inherit; }

/* Producto */
body[data-mesa-page="producto"] .single-product-area{ margin-top:18px !important; }
body[data-mesa-page="producto"] .product-shell{
  border:1px solid var(--mesa-line) !important;
  border-radius:30px !important;
  background:rgba(255,255,255,.97) !important;
  box-shadow:var(--mesa-shadow) !important;
}
body[data-mesa-page="producto"] .product-title{ color:var(--mesa-ink) !important; font-size:clamp(26px,4vw,42px) !important; }
body[data-mesa-page="producto"] .img-wrap{ border-radius:26px !important; background:#f5eee5 !important; }
body[data-mesa-page="producto"] .price-chip{
  color:#0b694d !important;
  border:1px solid #b9e8d3 !important;
  background:#eafaf3 !important;
}
body[data-mesa-page="producto"] .qty-stepper,
body[data-mesa-page="producto"] .add-row,
body[data-mesa-page="producto"] .sug-card{
  border-color:#e8e1d7 !important;
  background:#fffaf4 !important;
}
body[data-mesa-page="producto"] .qty-stepper button{
  color:#fff !important;
  background:linear-gradient(135deg,#ff6b00,#ff8a00) !important;
}
body[data-mesa-page="producto"] .qty-input{ color:#202124 !important; background:#fff !important; }
body[data-mesa-page="producto"] .chip{
  color:#453d35 !important;
  border-color:#e6ddd2 !important;
  background:#fff8ef !important;
}
body[data-mesa-page="producto"] .chip:has(input:checked){
  color:#0a6849 !important;
  border-color:#8fd7b8 !important;
  background:#e9f9f1 !important;
}
body[data-mesa-page="producto"] .btn-primary{
  color:#fff !important;
  background:linear-gradient(135deg,#ff6b00,#ff8a00) !important;
  border:0 !important;
}
body[data-mesa-page="producto"] .btn-outline{
  color:#3d352e !important;
  border:1px solid #dcd2c6 !important;
  background:#fff !important;
}

/* Promo */
body[data-mesa-page="promo"] .promo-sticky{
  top:76px !important;
  color:#342d26 !important;
  border-bottom:1px solid #eadfce !important;
  background:rgba(255,253,248,.88) !important;
  backdrop-filter:blur(16px) !important;
}
body[data-mesa-page="promo"] .promo-title{ color:#302a24 !important; background:none !important; -webkit-text-fill-color:initial !important; }
body[data-mesa-page="promo"] .promo-progress{ background:#efe5d8 !important; }
body[data-mesa-page="promo"] .promo-progress>span{ background:linear-gradient(90deg,#ff6b00,#ffbe0b) !important; }
body[data-mesa-page="promo"] .promo-badge{ color:#51483f !important; border-color:#e4d9cc !important; background:#fff !important; }
body[data-mesa-page="promo"] .promo-card{
  color:var(--mesa-ink) !important;
  border:1px solid var(--mesa-line) !important;
  border-radius:28px !important;
  background:rgba(255,255,255,.97) !important;
  box-shadow:var(--mesa-shadow) !important;
}
body[data-mesa-page="promo"] .promo-option-card,
body[data-mesa-page="promo"] .selected-product{
  color:#292521 !important;
  border:1px solid #e7ded2 !important;
  background:#fffaf4 !important;
}
body[data-mesa-page="promo"] .promo-option-card.selected{ border-color:#ff9a4d !important; background:#fff2e8 !important; }
body[data-mesa-page="promo"] .promo-option-name{ color:#202124 !important; }
body[data-mesa-page="promo"] .promo-option-meta,.hint{ color:#68707d !important; }
body[data-mesa-page="promo"] .promo-qty-control button{ color:#fff !important; background:#ff6b00 !important; }
body[data-mesa-page="promo"] .promo-qty-value{ color:#202124 !important; background:#fff !important; }
body[data-mesa-page="promo"] .confirm-footer{ border-color:#e7ded2 !important; background:rgba(255,255,255,.95) !important; }

/* Carrito */
body[data-mesa-page="carrito"] .container{ max-width:1240px; }
body[data-mesa-page="carrito"] .product-title{
  color:#292521 !important;
  font-size:clamp(28px,4vw,42px) !important;
  text-align:left !important;
  margin:10px 0 12px !important;
}
body[data-mesa-page="carrito"] .table-container,
body[data-mesa-page="carrito"] .mobile-summary,
body[data-mesa-page="carrito"] .pedido-card,
body[data-mesa-page="carrito"] .cart_totals,
body[data-mesa-page="carrito"] .total-card{
  color:#25211d !important;
  border:1px solid #e8e1d7 !important;
  background:rgba(255,255,255,.97) !important;
  box-shadow:var(--mesa-shadow-soft) !important;
}
body[data-mesa-page="carrito"] .table-dark th{ color:#302a24 !important; background:#fff5e8 !important; border-color:#eadfce !important; }
body[data-mesa-page="carrito"] .table-striped>tbody>tr:nth-of-type(odd)>*{ color:#28231f !important; background:#fffaf5 !important; }
body[data-mesa-page="carrito"] .table>tbody>tr>*{ color:#28231f !important; border-color:#eee7df !important; }
body[data-mesa-page="carrito"] .text-muted,
body[data-mesa-page="carrito"] .addon-meta,
body[data-mesa-page="carrito"] .meta{ color:#626b78 !important; }
body[data-mesa-page="carrito"] .addon-line{ color:#27231f !important; border-color:#e6ded3 !important; background:#fff9f2 !important; }
body[data-mesa-page="carrito"] .subtotal-badge,
body[data-mesa-page="carrito"] .amount,
body[data-mesa-page="carrito"] .total-big{ color:#0f8f62 !important; }
body[data-mesa-page="carrito"] .sticky-cta{
  border-top:1px solid #e8dfd4 !important;
  background:rgba(255,255,255,.94) !important;
  backdrop-filter:blur(18px) !important;
}
body[data-mesa-page="carrito"] .btn-primary,
body[data-mesa-page="carrito"] .btn-success{
  color:#fff !important;
  border:0 !important;
  background:linear-gradient(135deg,#10a76f,#08b8b2) !important;
}
body[data-mesa-page="carrito"] .btn-warning{ color:#402d00 !important; background:#ffd467 !important; border-color:#efbd3b !important; }
body[data-mesa-page="carrito"] .btn-danger{ color:#fff !important; background:#d9474d !important; }
body[data-mesa-page="carrito"] .btn-outline-secondary{ color:#39332d !important; border-color:#d9cfc2 !important; background:#fff !important; }
body[data-mesa-page="carrito"] .total-card .btn{ min-height:50px; }

/* Cuenta */
body[data-mesa-page="cuenta"] .page-header{
  color:#fff !important;
  background:linear-gradient(120deg,#ff6400,#ff8a00,#ffc107) !important;
  box-shadow:0 16px 38px rgba(255,107,0,.20) !important;
}
body[data-mesa-page="cuenta"] .card-surface{
  color:#25211d !important;
  border:1px solid #e8e1d7 !important;
  border-radius:28px !important;
  background:rgba(255,255,255,.97) !important;
  box-shadow:var(--mesa-shadow) !important;
}
body[data-mesa-page="cuenta"] .table-modern thead th{ color:#342d26 !important; background:#fff3e2 !important; border-color:#eadfce !important; }
body[data-mesa-page="cuenta"] .table-modern tbody td{ color:#28231f !important; border-color:#eee7df !important; }
body[data-mesa-page="cuenta"] .prod-code,.hint,.text-muted{ color:#68707d !important; }
body[data-mesa-page="cuenta"] .price-xl{ color:#0f8f62 !important; }
body[data-mesa-page="cuenta"] .btn-primary{ color:#fff !important; border:0 !important; background:linear-gradient(135deg,#10a76f,#08b8b2) !important; }
body[data-mesa-page="cuenta"] .btn-outline-secondary{ color:#3a332d !important; border-color:#d9cfc2 !important; background:#fff !important; }
body[data-mesa-page="cuenta"] .modal-content{ border:1px solid #e8e1d7 !important; border-radius:26px !important; }

@media (max-width:767.98px){
  body[data-mesa-page]{ padding-top:72px !important; }
  .mesa-flow{ top:8px !important; max-width:calc(100vw - 16px) !important; width:calc(100vw - 16px); justify-content:space-between; }
  .mesa-flow-step{ min-width:0 !important; flex:1; padding:7px 5px !important; font-size:11px !important; }
  .mesa-flow-step .label{ display:none; }
  .mesa-inline-guide,.mesa-inline-guide.three{ grid-template-columns:1fr; }
  .mesa-assistant-panel{ width:min(330px,calc(100vw - 74px)) !important; }
  body[data-mesa-page="producto"] .product-shell{ padding:16px !important; border-radius:22px !important; }
  body[data-mesa-page="promo"] .promo-sticky{ top:66px !important; }
  body[data-mesa-page="promo"] .promo-bar{ align-items:flex-start !important; flex-wrap:wrap !important; }
  body[data-mesa-page="promo"] .promo-title{ width:100%; font-size:17px !important; }
  body[data-mesa-page="carrito"] .product-title{ font-size:28px !important; }
}

/* ============================================================
   CATÁLOGO QR DE MESA
   Adaptación de tienda.php original sin alterar ruleta, push ni filtros.
   ============================================================ */
body[data-mesa-page="catalogo"]{
  padding-top:86px !important;
  padding-bottom:118px !important;
  overflow-x:hidden;
}
body[data-mesa-page="catalogo"] > header,
body[data-mesa-page="catalogo"] > nav{ position:relative; z-index:1000; }

.mesa-catalog-hero{
  width:min(1320px,calc(100% - 32px));
  margin:20px auto 16px;
  padding:28px 30px;
  border-radius:32px;
  color:#fff;
  background:
    radial-gradient(500px 240px at 92% 0%,rgba(255,255,255,.24),transparent 65%),
    linear-gradient(120deg,#ff6200 0%,#ff8200 54%,#ffc107 100%);
  box-shadow:0 22px 50px rgba(181,82,0,.24);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  overflow:hidden;
  position:relative;
}
.mesa-catalog-hero::after{
  content:"";
  position:absolute;
  width:280px;
  height:280px;
  right:-92px;
  bottom:-160px;
  border:42px solid rgba(255,255,255,.12);
  border-radius:50%;
}
.mesa-catalog-hero-copy{ position:relative; z-index:2; max-width:760px; }
.mesa-number-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom:10px;
  padding:8px 12px;
  border:1px solid rgba(255,255,255,.38);
  border-radius:999px;
  color:#fff;
  background:rgba(255,255,255,.18);
  font-size:13px;
  font-weight:950;
  backdrop-filter:blur(10px);
}
.mesa-catalog-hero h1{
  margin:0;
  color:#fff !important;
  font-size:clamp(30px,4.5vw,55px);
  line-height:1.02;
  font-weight:1100;
  letter-spacing:-1.4px;
}
.mesa-catalog-hero p{
  margin:10px 0 0;
  max-width:680px;
  color:rgba(255,255,255,.92) !important;
  font-size:clamp(15px,1.8vw,19px);
  font-weight:720;
}
.mesa-hero-cart{
  position:relative;
  z-index:2;
  min-width:250px;
  padding:13px 15px;
  border:1px solid rgba(255,255,255,.56);
  border-radius:22px;
  color:#2d251e !important;
  background:rgba(255,255,255,.90);
  box-shadow:0 14px 30px rgba(91,45,6,.18);
  backdrop-filter:blur(15px);
  text-decoration:none;
  display:flex;
  align-items:center;
  gap:12px;
  transition:transform .18s ease,box-shadow .18s ease;
}
.mesa-hero-cart:hover{ transform:translateY(-2px); box-shadow:0 18px 38px rgba(91,45,6,.25); }
.mesa-hero-cart-icon{
  width:48px;
  height:48px;
  border-radius:16px;
  display:grid;
  place-items:center;
  color:#fff;
  background:linear-gradient(135deg,#12a76f,#08b8b2);
  font-size:20px;
}
.mesa-hero-cart span:nth-child(2){ display:flex; flex-direction:column; min-width:0; flex:1; }
.mesa-hero-cart small{ color:#766c61; font-weight:800; }
.mesa-hero-cart strong{ color:#2c2824; font-size:16px; font-weight:1000; }

body[data-mesa-page="catalogo"] .sticky-top-glass{
  position:sticky !important;
  top:76px !important;
  z-index:1040 !important;
  width:min(1320px,calc(100% - 32px));
  margin:0 auto;
  border:1px solid rgba(224,214,201,.88) !important;
  border-radius:24px;
  background:rgba(255,255,255,.88) !important;
  box-shadow:0 13px 34px rgba(54,40,23,.12) !important;
  backdrop-filter:blur(18px) saturate(1.08) !important;
}
body[data-mesa-page="catalogo"] .sticky-top-glass .container{ max-width:none; }
body[data-mesa-page="catalogo"] .filter-bar{ justify-content:flex-start !important; }

body[data-mesa-page="catalogo"] .control-pill,
body[data-mesa-page="catalogo"] .cd-trigger,
body[data-mesa-page="catalogo"] #btnJuegos,
body[data-mesa-page="catalogo"] #btnTheme{
  min-height:54px;
  border:1px solid #e3dbd1 !important;
  border-radius:18px !important;
  color:#302b26 !important;
  background:#fff !important;
  box-shadow:0 7px 20px rgba(54,40,23,.08) !important;
}
body[data-mesa-page="catalogo"] .control-pill{
  padding:10px 46px 10px 45px !important;
}
body[data-mesa-page="catalogo"] .control-pill:hover,
body[data-mesa-page="catalogo"] .cd-trigger:hover,
body[data-mesa-page="catalogo"] #btnJuegos:hover{
  border-color:#ffc173 !important;
  box-shadow:0 10px 24px rgba(255,107,0,.13) !important;
}
body[data-mesa-page="catalogo"] .leading-icon,
body[data-mesa-page="catalogo"] .cd-trigger .cd-icon,
body[data-mesa-page="catalogo"] .trailing-caret{ color:#ff6b00 !important; }
body[data-mesa-page="catalogo"] .pretty-input,
body[data-mesa-page="catalogo"] .pretty-select{
  color:#28231f !important;
  font-weight:850 !important;
}
body[data-mesa-page="catalogo"] .pretty-input::placeholder{ color:#837b72 !important; }
body[data-mesa-page="catalogo"] .glow-border{ display:none !important; }
body[data-mesa-page="catalogo"] .clear-btn{
  color:#6a6259 !important;
  background:#f5f0ea !important;
  border-color:#e5ddd4 !important;
}
body[data-mesa-page="catalogo"] .kbd-hint{
  color:#8c8277 !important;
  background:#f5f0ea !important;
  border-color:#e3dbd1 !important;
}
body[data-mesa-page="catalogo"] #btnTheme{ display:none !important; }
body[data-mesa-page="catalogo"] #btnJuegos{
  display:inline-flex !important;
  align-items:center;
  gap:8px;
  padding:0 17px !important;
  font-weight:950;
}

body[data-mesa-page="catalogo"] .cd-menu{
  top:calc(100% + 10px) !important;
  padding:7px !important;
  border:1px solid #e1d8cd !important;
  border-radius:20px !important;
  color:#302b26 !important;
  background:rgba(255,255,255,.98) !important;
  box-shadow:0 22px 55px rgba(46,33,20,.18) !important;
}
body[data-mesa-page="catalogo"] .cd-option{
  min-height:44px;
  color:#332e29 !important;
  border-radius:14px !important;
  font-weight:800;
}
body[data-mesa-page="catalogo"] .cd-option:hover{ background:#fff1e5 !important; }
body[data-mesa-page="catalogo"] .cd-option.active{
  color:#9a4100 !important;
  background:#ffe8d5 !important;
}
body[data-mesa-page="catalogo"] .cd-option.active::after{ background:#ff6b00 !important; }

.mesa-catalog-main{ max-width:1320px !important; }
.mesa-section-heading{
  margin:28px 0 18px;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
}
.mesa-eyebrow{
  display:block;
  margin-bottom:4px;
  color:#d65a00;
  font-size:12px;
  font-weight:1000;
  letter-spacing:1.3px;
  text-transform:uppercase;
}
.mesa-section-heading h2{
  margin:0;
  max-width:780px;
  color:#26221e !important;
  font-size:clamp(24px,3.2vw,38px);
  line-height:1.08;
  font-weight:1100;
  letter-spacing:-.8px;
}
.mesa-live-cart{
  min-width:170px;
  padding:10px 12px;
  border:1px solid #e3dbd1;
  border-radius:18px;
  color:#5f574f;
  background:#fff;
  box-shadow:0 7px 20px rgba(54,40,23,.08);
  display:flex;
  align-items:center;
  gap:8px;
  font-weight:850;
}
.mesa-live-cart i{ color:#ff6b00; }
.mesa-live-cart strong{
  margin-left:auto;
  width:32px;
  height:32px;
  border-radius:11px;
  color:#fff;
  background:#ff6b00;
  display:grid;
  place-items:center;
}

body[data-mesa-page="catalogo"] #product-list{ row-gap:4px; }
body[data-mesa-page="catalogo"] .product-item{ display:flex; }
body[data-mesa-page="catalogo"] .product-card{
  width:100%;
  height:100%;
  border:1px solid #e8e0d7 !important;
  border-radius:26px !important;
  color:#28231f !important;
  background:#fff !important;
  box-shadow:0 13px 32px rgba(54,40,23,.10) !important;
  overflow:hidden;
  transform:translateY(10px) scale(.985);
  opacity:0;
}
body[data-mesa-page="catalogo"] .product-card.visible{
  transform:none !important;
  opacity:1 !important;
}
body[data-mesa-page="catalogo"] .product-card:hover{
  transform:translateY(-5px) !important;
  border-color:#ffc187 !important;
  box-shadow:0 20px 42px rgba(255,107,0,.16) !important;
}
body[data-mesa-page="catalogo"] .img-skeleton{
  aspect-ratio:4/3;
  min-height:190px;
  background:#f1ece6 !important;
  overflow:hidden;
}
body[data-mesa-page="catalogo"] .card-img-top{
  width:100%;
  height:100% !important;
  min-height:190px;
  object-fit:cover;
  transition:transform .36s ease;
}
body[data-mesa-page="catalogo"] .product-card:hover .card-img-top{ transform:scale(1.045); }
body[data-mesa-page="catalogo"] .card-body,
body[data-mesa-page="catalogo"] .card-body[style]{
  min-height:174px;
  padding:18px !important;
  color:#28231f !important;
  background:#fff !important;
  display:flex;
  flex-direction:column;
}
body[data-mesa-page="catalogo"] .card-title{
  margin:0 0 8px !important;
  color:#28231f !important;
  font-size:18px;
  line-height:1.18;
  font-weight:1000;
}
body[data-mesa-page="catalogo"] .card-text.text-info{
  color:#0f8f62 !important;
  font-size:17px;
  font-weight:1000 !important;
}
body[data-mesa-page="catalogo"] .product-card .btn-primary{
  margin-top:auto;
  min-height:49px;
  border:0 !important;
  border-radius:16px !important;
  color:#fff !important;
  background:linear-gradient(135deg,#ff6500,#ff8700) !important;
  box-shadow:0 10px 22px rgba(255,107,0,.20) !important;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:1000;
}

body[data-mesa-page="catalogo"] .alert-warning{
  border:1px solid #f2cf87 !important;
  border-radius:19px !important;
  color:#6f4a00 !important;
  background:#fff5d8 !important;
  box-shadow:0 8px 22px rgba(97,69,10,.08);
  font-weight:800;
}
.mesa-empty-state{
  margin:10px auto 30px;
  max-width:520px;
  padding:42px 24px;
  border:1px dashed #d9cfc3;
  border-radius:26px;
  color:#625b53;
  background:rgba(255,255,255,.78);
}
.mesa-empty-state i{ color:#ff6b00; font-size:34px; margin-bottom:12px; }
.mesa-empty-state h3{ color:#28231f; font-weight:1000; }
.mesa-empty-state p{ margin:0; }

.mesa-action-dock{
  position:fixed;
  left:50%;
  bottom:14px;
  z-index:2050;
  width:min(780px,calc(100vw - 112px));
  padding:8px;
  border:1px solid rgba(255,255,255,.88);
  border-radius:24px;
  background:rgba(255,255,255,.89);
  box-shadow:0 18px 48px rgba(48,35,20,.20);
  backdrop-filter:blur(18px) saturate(1.12);
  transform:translateX(-50%);
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr));
  gap:8px;
}
.mesa-dock-action{
  min-height:62px;
  padding:8px 11px;
  border:1px solid #e5ddd3;
  border-radius:18px;
  color:#39332d !important;
  background:#fff;
  text-decoration:none;
  display:flex;
  align-items:center;
  gap:10px;
  transition:transform .16s ease,box-shadow .16s ease;
}
.mesa-dock-action:hover{ transform:translateY(-2px); box-shadow:0 10px 22px rgba(50,37,22,.10); }
.mesa-dock-action.primary{
  border-color:#ffbc80;
  color:#fff !important;
  background:linear-gradient(135deg,#ff6500,#ff8900);
}
.mesa-dock-icon{
  width:43px;
  height:43px;
  border-radius:14px;
  display:grid;
  place-items:center;
  color:#ff6b00;
  background:#fff0e3;
  flex:0 0 auto;
}
.mesa-dock-action.primary .mesa-dock-icon{ color:#bd4d00; background:#fff; }
.mesa-dock-copy{ min-width:0; display:flex; flex-direction:column; line-height:1.06; }
.mesa-dock-copy small{ margin-bottom:4px; color:#887e73; font-size:10px; font-weight:900; text-transform:uppercase; letter-spacing:.45px; }
.mesa-dock-copy strong{ color:inherit; font-size:14px; font-weight:1000; }
.mesa-dock-action.primary .mesa-dock-copy small{ color:rgba(255,255,255,.78); }
.mesa-dock-count{
  margin-left:auto;
  min-width:28px;
  height:28px;
  padding:0 7px;
  border-radius:10px;
  color:#be4b00;
  background:#fff;
  display:grid;
  place-items:center;
  font-size:13px;
  font-weight:1100;
}
body[data-mesa-page="catalogo"] .mesa-assistant{ bottom:98px !important; }
body[data-mesa-page="catalogo"] #btnTop{ bottom:102px !important; right:84px !important; }

/* Modal de juegos llevado al mismo lenguaje visual, sin tocar su lógica. */
body[data-mesa-page="catalogo"] #juegosModal .modal-content{
  border:1px solid #e5ddd3 !important;
  border-radius:28px !important;
  color:#28231f !important;
  background:#fff !important;
  box-shadow:0 26px 70px rgba(39,28,18,.24);
}
body[data-mesa-page="catalogo"] #juegosModal .modal-title,
body[data-mesa-page="catalogo"] #juegosModal .modal-body,
body[data-mesa-page="catalogo"] #juegosModal .modal-footer,
body[data-mesa-page="catalogo"] #juegosModal #juegosBox,
body[data-mesa-page="catalogo"] #juegosModal #juegosBox *{ color:inherit !important; }
body[data-mesa-page="catalogo"] #juegosModal .text-muted{ color:#70685f !important; }
body[data-mesa-page="catalogo"] #juegosModal .modal-header,
body[data-mesa-page="catalogo"] #juegosModal .modal-footer{ border-color:#ece4da !important; }
body[data-mesa-page="catalogo"] #juegosModal .btn-close{ filter:none !important; }

@media (max-width:991px){
  .mesa-catalog-hero{ align-items:flex-start; }
  .mesa-hero-cart{ min-width:220px; }
  body[data-mesa-page="catalogo"] .sticky-top-glass{ top:70px !important; }
}
@media (max-width:767px){
  body[data-mesa-page="catalogo"]{
    padding-top:72px !important;
    padding-bottom:112px !important;
  }
  .mesa-catalog-hero{
    width:calc(100% - 20px);
    margin:10px auto;
    padding:22px 19px;
    border-radius:25px;
    display:block;
  }
  .mesa-catalog-hero h1{ font-size:34px; }
  .mesa-catalog-hero p{ font-size:15px; }
  .mesa-hero-cart{ width:100%; margin-top:18px; min-width:0; }
  body[data-mesa-page="catalogo"] .sticky-top-glass{
    top:66px !important;
    width:calc(100% - 20px);
    border-radius:21px;
  }
  body[data-mesa-page="catalogo"] .sticky-top-glass .container{ padding:10px !important; }
  body[data-mesa-page="catalogo"] .filter-bar{ gap:9px !important; }
  body[data-mesa-page="catalogo"] .filter-bar > div{ width:100% !important; }
  body[data-mesa-page="catalogo"] #btnJuegos{ width:100%; justify-content:center; }
  .mesa-catalog-main{ padding-left:11px !important; padding-right:11px !important; }
  .mesa-section-heading{ align-items:flex-start; margin-top:20px; }
  .mesa-live-cart{ display:none; }
  body[data-mesa-page="catalogo"] .product-item{ padding-left:6px; padding-right:6px; }
  body[data-mesa-page="catalogo"] .card-body{ min-height:158px; padding:15px !important; }
  body[data-mesa-page="catalogo"] .card-title{ font-size:16px; }
  .mesa-action-dock{
    bottom:7px;
    width:calc(100vw - 14px);
    border-radius:22px;
    grid-template-columns:repeat(auto-fit,minmax(92px,1fr));
    gap:5px;
    padding:6px;
  }
  .mesa-dock-action{
    min-height:62px;
    padding:6px;
    border-radius:16px;
    justify-content:center;
    flex-direction:column;
    gap:4px;
    text-align:center;
  }
  .mesa-dock-icon{ width:31px; height:31px; border-radius:10px; }
  .mesa-dock-copy small{ display:none; }
  .mesa-dock-copy strong{ font-size:11px; white-space:nowrap; }
  .mesa-dock-count{ position:absolute; transform:translate(22px,-21px); min-width:22px; height:22px; font-size:11px; }
  body[data-mesa-page="catalogo"] .mesa-assistant{ right:10px !important; bottom:88px !important; }
  body[data-mesa-page="catalogo"] #btnTop{ display:none !important; }
}
@media (max-width:420px){
  body[data-mesa-page="catalogo"] .product-item{ width:50%; }
  body[data-mesa-page="catalogo"] .img-skeleton,
  body[data-mesa-page="catalogo"] .card-img-top{ min-height:145px; }
  body[data-mesa-page="catalogo"] .card-title{ font-size:14px; }
  body[data-mesa-page="catalogo"] .card-text.text-info{ font-size:14px; }
  body[data-mesa-page="catalogo"] .product-card .btn-primary{ min-height:44px; font-size:12px; padding:8px !important; }
}
