*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,Helvetica,sans-serif;color:#161616;background:#f6f7f8}a{color:inherit}button,input,select,textarea{font:inherit}img{max-width:100%}
/* Public menu: intentionally simple, image-forward and close to the reference structure */
.menu-body{background:#fff;color:var(--menu-secondary,#111)}.menu-page{max-width:1120px;margin:0 auto;padding:28px 24px 54px}.menu-header{text-align:center;padding:18px 0 28px}.menu-logo{width:140px;height:140px;object-fit:contain;margin:0 auto 14px;display:block}.menu-header h1{font-size:34px;line-height:1.1;margin:0 0 6px;font-weight:700}.menu-header h2{font-size:24px;margin:0;font-weight:700;color:var(--menu-primary)}.menu-header p{max-width:640px;margin:10px auto 0;color:#666;line-height:1.5}.menu-section{padding:18px 0 34px}.category-heading{text-align:center;margin-bottom:22px}.category-heading h2{font-size:25px;text-transform:uppercase;letter-spacing:.04em;margin:0;color:var(--menu-secondary)}.category-heading h2:after{content:"";display:block;width:54px;height:3px;border-radius:4px;background:var(--menu-primary);margin:10px auto 0}.category-heading p{margin:8px 0 0;color:#777}.product-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 22px}.product-card{text-align:center;min-width:0}.product-image-wrap{aspect-ratio:1/1;position:relative;overflow:hidden;background:#f3f3f1}.product-image-wrap img{width:100%;height:100%;object-fit:cover;display:block}.product-badge{position:absolute;top:10px;left:10px;background:var(--menu-accent);color:#111;padding:5px 8px;font-size:12px;font-weight:700;text-transform:uppercase}.product-card h3{font-size:18px;line-height:1.25;margin:12px 0 7px}.product-price{display:flex;gap:8px;justify-content:center;align-items:baseline;margin-bottom:7px}.product-price strong{font-size:18px;color:var(--menu-primary)}.product-price del{font-size:13px;color:#888}.product-card p{font-size:14px;line-height:1.45;color:#666;margin:0 auto;max-width:240px}.menu-footer{text-align:center;border-top:1px solid #e5e5e5;margin-top:20px;padding:30px 10px 10px}.menu-footer strong{font-size:15px}.menu-contact{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin-top:10px;color:#666;font-size:14px}
/* Admin */
.admin-body{background:#f3f5f7;color:#17202a}.admin-shell{min-height:100vh;display:grid;grid-template-columns:260px 1fr}.sidebar{position:sticky;top:0;height:100vh;background:#10161b;color:#fff;padding:24px 18px;display:flex;flex-direction:column}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:4px 8px 22px;border-bottom:1px solid rgba(255,255,255,.09)}.brand-dot{width:14px;height:14px;border-radius:50%;background:#f2a900;flex:0 0 auto}.sidebar-brand strong{display:block;font-size:17px}.sidebar-brand small{display:block;color:#9ca9b3;margin-top:3px}.sidebar nav{display:grid;gap:4px;padding:20px 0}.sidebar nav a{text-decoration:none;padding:11px 12px;border-radius:8px;color:#d9e0e5}.sidebar nav a:hover,.sidebar nav a.active{background:#202b33;color:#fff}.sidebar-bottom{margin-top:auto;border-top:1px solid rgba(255,255,255,.09);padding:18px 8px 0;display:grid;gap:8px;color:#b9c4cc;font-size:13px}.sidebar-bottom a{color:#fff}.admin-main{padding:28px 34px 50px;min-width:0}.admin-top{display:flex;align-items:center;gap:12px;margin-bottom:22px}.admin-top h1{font-size:28px;margin:0}.menu-toggle{display:none;border:0;background:#fff;padding:9px 11px;border-radius:8px}.panel{background:#fff;border:1px solid #e3e7ea;border-radius:12px;padding:22px;margin-bottom:22px;box-shadow:0 2px 8px rgba(20,30,40,.03)}.panel h2{margin:0 0 18px;font-size:20px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.toolbar h2{margin:0}.btn{appearance:none;border:0;border-radius:8px;padding:10px 14px;background:#18242d;color:#fff;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-weight:700;font-size:14px}.btn-primary{background:#1f6b3a}.btn-light{background:#edf1f3;color:#17202a}.btn-danger{background:#a72d2d}.btn-small{padding:7px 10px;font-size:12px}.grid-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.stat{background:#fff;border:1px solid #e3e7ea;border-radius:12px;padding:18px}.stat span{display:block;color:#75808a;font-size:13px}.stat strong{display:block;font-size:30px;margin-top:6px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid .full{grid-column:1/-1}.field label{display:block;font-weight:700;font-size:13px;margin-bottom:7px}.field input,.field select,.field textarea{width:100%;border:1px solid #cfd6dc;border-radius:8px;padding:10px 11px;background:#fff}.field textarea{min-height:100px;resize:vertical}.field small{display:block;color:#77818a;margin-top:6px;line-height:1.35}.checkbox{display:flex;align-items:center;gap:8px}.checkbox input{width:auto}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:20px}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse;min-width:680px}.table th,.table td{text-align:left;padding:12px;border-bottom:1px solid #edf0f2;vertical-align:middle}.table th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#6f7b84}.table td{font-size:14px}.table-img{width:54px;height:54px;object-fit:cover;border-radius:7px;background:#eee}.badge{display:inline-block;padding:4px 7px;border-radius:999px;background:#e9f4ed;color:#1f6b3a;font-size:12px;font-weight:700}.badge-off{background:#f2e9e9;color:#8e3333}.alert{padding:12px 14px;border-radius:8px;margin-bottom:16px}.alert-success{background:#e6f5eb;color:#175c31}.alert-error{background:#fde9e9;color:#8d2525}.alert-info{background:#e8f1fb;color:#1c578a}.auth-page{min-height:100vh;display:grid;place-items:center;background:#f2f4f5;padding:22px}.auth-card{width:min(430px,100%);background:#fff;border:1px solid #e1e5e8;border-radius:14px;padding:28px}.auth-card h1{margin:0 0 6px}.auth-card p{color:#6f7b84;margin:0 0 20px}.image-preview{width:130px;height:130px;object-fit:cover;border-radius:10px;background:#f1f1f1;border:1px solid #e2e2e2;margin-bottom:10px}.color-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.color-row input[type=color]{height:44px;padding:4px}.muted{color:#71808a}.empty{padding:28px;text-align:center;color:#71808a;border:1px dashed #d7dde1;border-radius:10px}.inline-form{display:inline}.login-brand{display:flex;align-items:center;gap:9px;margin-bottom:20px}.login-brand .brand-dot{width:17px;height:17px}.copy-box{display:flex;gap:8px;align-items:center;background:#f5f7f8;padding:10px 12px;border-radius:8px;overflow:auto}.help-list{margin:0;padding-left:20px;line-height:1.7}
@media(max-width:900px){.product-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cards{grid-template-columns:repeat(2,1fr)}.admin-shell{display:block}.sidebar{position:fixed;z-index:50;left:-280px;width:260px;transition:left .2s}.sidebar-open .sidebar{left:0}.menu-toggle{display:inline-block}.admin-main{padding:22px 18px}.form-grid{grid-template-columns:1fr}}
@media(max-width:640px){.menu-page{padding:20px 14px 38px}.menu-logo{width:105px;height:105px}.menu-header h1{font-size:30px}.menu-header h2{font-size:21px}.category-heading h2{font-size:21px}.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 13px}.product-card h3{font-size:15px}.product-price strong{font-size:16px}.product-card p{font-size:12.5px}.grid-cards{grid-template-columns:1fr}.color-row{grid-template-columns:repeat(2,1fr)}}

/* v1.0.2: acceso discreto a la administración desde cada menú público */
.menu-admin-access{position:fixed;right:18px;bottom:18px;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.94);color:var(--menu-primary,#1F6B3A);border:1px solid rgba(0,0,0,.08);box-shadow:0 5px 18px rgba(0,0,0,.14);text-decoration:none;z-index:50;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.menu-admin-access:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,.18);background:#fff}.menu-admin-access:focus-visible{outline:3px solid var(--menu-accent,#F2A900);outline-offset:3px}.menu-admin-access svg{width:20px;height:20px;fill:currentColor}.business-login-context{display:flex;align-items:center;gap:12px;padding:12px 14px;margin:0 0 18px;background:#f5f7f8;border:1px solid #e5e8eb;border-radius:10px}.business-login-context img{width:48px;height:48px;border-radius:9px;object-fit:contain;background:#fff}.business-login-context small{display:block;color:#68737d;font-size:12px;margin-bottom:3px}.business-login-context strong{display:block;font-size:16px;color:#17202a}@media(max-width:620px){.menu-admin-access{right:14px;bottom:14px;width:42px;height:42px}}

/* v1.0.5: accesos limpios en Superadmin y buscador de productos */
.dashboard-shortcuts{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-bottom:22px}
.product-search{margin:-2px 0 18px}.product-search-field{position:relative;max-width:560px}.product-search-field svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:19px;height:19px;fill:#74808a;pointer-events:none}.product-search-field input{width:100%;height:44px;border:1px solid #cfd6dc;border-radius:9px;background:#fff;padding:10px 42px 10px 42px;outline:none;transition:border-color .15s ease,box-shadow .15s ease}.product-search-field input:focus{border-color:#7d929f;box-shadow:0 0 0 3px rgba(70,95,110,.10)}.product-search-clear{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:30px;height:30px;border:0;border-radius:7px;background:transparent;color:#68757e;font-size:24px;line-height:1;cursor:pointer}.product-search-clear:hover{background:#edf1f3;color:#17202a}.product-search-empty{margin-top:14px}.table tr[hidden]{display:none}
@media(max-width:640px){.dashboard-shortcuts{justify-content:stretch}.dashboard-shortcuts .btn{flex:1}.product-search-field{max-width:none}}


/* v1.0.7: imagen de fondo configurable por negocio */
.menu-body.menu-has-background{position:relative;min-height:100vh;background-color:#fff;background-image:var(--menu-background-image);background-size:cover;background-position:center center;background-repeat:no-repeat;background-attachment:fixed}.menu-body.menu-has-background:before{content:"";position:fixed;inset:0;background:rgba(255,255,255,.72);pointer-events:none;z-index:0}.menu-body.menu-has-background .menu-page{position:relative;z-index:1}.menu-body.menu-has-background .menu-header,.menu-body.menu-has-background .menu-section,.menu-body.menu-has-background .menu-footer{position:relative}.menu-body.menu-has-background .product-card{background:rgba(255,255,255,.76);border-radius:12px;padding:10px 10px 14px;box-shadow:0 3px 12px rgba(0,0,0,.06);backdrop-filter:blur(2px)}.menu-body.menu-has-background .category-heading,.menu-body.menu-has-background .menu-header{background:rgba(255,255,255,.42);border-radius:12px;padding-left:12px;padding-right:12px}.menu-body.menu-has-background .menu-footer{background:rgba(255,255,255,.52);border-radius:12px;padding-left:14px;padding-right:14px}.background-preview-box{width:min(360px,100%);height:180px;border:1px solid #e2e6e9;border-radius:10px;background:#f7f8f8;overflow:hidden;display:grid;place-items:center;margin-bottom:10px}.background-preview{width:100%!important;height:100%!important;max-width:100%!important;max-height:180px!important;object-fit:cover;border:0;border-radius:0;background:transparent;margin:0;display:block}.background-preview[hidden],.background-preview-empty[hidden]{display:none!important}.background-preview-empty{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#8b959d;font-size:13px;font-weight:600}.background-preview-empty svg{width:42px;height:34px;color:#b9c1c7;display:block}
@media(max-width:900px){.menu-body.menu-has-background{background-attachment:scroll}}
@media(max-width:640px){.menu-body.menu-has-background:before{background:rgba(255,255,255,.76)}.menu-body.menu-has-background .product-card{padding:8px 8px 12px}.background-preview-box{width:min(320px,100%);height:150px}.background-preview{max-height:150px!important}.background-preview-empty svg{width:38px;height:30px}}


/* v1.0.10: placeholder de fondo compacto y aislado de estilos globales */
.background-preview-box{width:min(320px,100%)!important;height:150px!important;min-height:150px!important;max-height:150px!important;overflow:hidden!important;display:flex!important;align-items:center!important;justify-content:center!important}
.background-preview-empty{width:100%!important;height:100%!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:6px!important;color:#8b959d!important;font-size:12px!important;font-weight:600!important;line-height:1.2!important}
.background-preview-empty[hidden]{display:none!important}
.background-preview-empty-icon{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;max-width:36px!important;max-height:36px!important;font-size:30px!important;line-height:1!important;font-family:Arial,sans-serif!important;font-weight:400!important;color:#a7b0b7!important;overflow:hidden!important;transform:none!important}
.background-preview-empty svg,.background-preview-empty img{display:none!important;width:0!important;height:0!important;max-width:0!important;max-height:0!important}
.background-preview{width:100%!important;height:100%!important;max-width:100%!important;max-height:150px!important;object-fit:cover!important}
@media(max-width:640px){.background-preview-box{width:min(280px,100%)!important;height:130px!important;min-height:130px!important;max-height:130px!important}.background-preview{max-height:130px!important}.background-preview-empty-icon{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;max-width:32px!important;max-height:32px!important;font-size:27px!important}}

/* MENU.WD.DO v1.0.11 - Fondo limpio: sin velos blancos globales */
.menu-body.menu-has-background:before{
  content:none!important;
  display:none!important;
  background:transparent!important;
}
.menu-body.menu-has-background .menu-header,
.menu-body.menu-has-background .category-heading,
.menu-body.menu-has-background .menu-footer{
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.menu-body.menu-has-background .product-card{
  background:rgba(255,255,255,.90)!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}

/* MENU.WD.DO v1.0.12 - Fondo mobile-first y texto legible */
/* Una sola imagen: se encuadra primero para celular y se adapta al escritorio. */
.menu-body.menu-has-background{
  position:relative!important;
  min-height:100vh;
  background:#fff!important;
  background-image:none!important;
}
.menu-body.menu-has-background::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:0;
  pointer-events:none;
  background-image:var(--menu-background-image);
  background-repeat:no-repeat;
  background-size:cover;
  background-position:center top;
  transform:translateZ(0);
}
.menu-body.menu-has-background .menu-page{
  position:relative;
  z-index:1;
}
/* Sombra blanca suave para textos que quedan directamente sobre la imagen. */
.menu-body.menu-has-background .menu-header h1,
.menu-body.menu-has-background .menu-header h2,
.menu-body.menu-has-background .menu-header p,
.menu-body.menu-has-background .category-heading h2,
.menu-body.menu-has-background .category-heading p,
.menu-body.menu-has-background .menu-footer,
.menu-body.menu-has-background .menu-footer strong,
.menu-body.menu-has-background .menu-contact,
.menu-body.menu-has-background .menu-contact a{
  text-shadow:
    0 1px 2px rgba(255,255,255,.98),
    1px 0 2px rgba(255,255,255,.95),
    -1px 0 2px rgba(255,255,255,.95),
    0 -1px 2px rgba(255,255,255,.95),
    0 0 5px rgba(255,255,255,.80)!important;
}
/* En pantallas grandes se centra el encuadre para aprovechar mejor el ancho. */
@media(min-width:901px){
  .menu-body.menu-has-background::after{
    background-position:center center;
  }
}
/* En celular el encuadre superior tiene prioridad para imágenes verticales. */
@media(max-width:640px){
  .menu-body.menu-has-background::after{
    background-position:center top;
    background-size:cover;
  }
}

/* MENU.WD.DO v1.0.14 - Logo principal ligeramente mas grande */
.menu-logo{
  width:235px!important;
  height:235px!important;
  max-width:min(235px,76vw)!important;
  object-fit:contain!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  padding:0!important;
  box-shadow:none!important;
}
/* Sobre fondos fotográficos, multiply hace desaparecer visualmente los blancos
   incrustados en logos JPG sin alterar los PNG transparentes. */
.menu-body.menu-has-background .menu-logo{
  mix-blend-mode:multiply;
  filter:contrast(1.12) saturate(1.08);
}
.product-card .product-description{
  display:block;
  margin:8px auto 2px!important;
  max-width:250px;
  color:#4f5559!important;
  font-size:14px!important;
  line-height:1.45!important;
}
@media(max-width:640px){
  .menu-logo{
    width:195px!important;
    height:195px!important;
    max-width:68vw!important;
    margin-bottom:10px!important;
  }
  .product-card .product-description{font-size:13px!important;line-height:1.4!important}
}

/* v1.0.15 — QR del menú en el resumen del administrador */
.menu-qr-block{display:flex;align-items:center;gap:22px;margin-top:18px;padding-top:18px;border-top:1px solid #e7ebee}.menu-qr-preview{width:190px;height:190px;flex:0 0 190px;background:#fff;border:1px solid #dfe5e9;border-radius:10px;padding:10px;display:grid;place-items:center}.menu-qr-preview svg{display:block;width:100%;height:100%}.menu-qr-info{max-width:620px}.menu-qr-info>strong{display:block;font-size:17px;margin-bottom:6px}.menu-qr-info p{margin:0;line-height:1.5}.menu-qr-actions{margin-top:14px}
@media(max-width:640px){.menu-qr-block{align-items:flex-start;gap:16px;flex-direction:column}.menu-qr-preview{width:170px;height:170px;flex-basis:170px}.menu-qr-actions{width:100%}.menu-qr-actions .btn{flex:1}}
