:root{--nav:#131921;--sub:#232F3E;--or:#FF6600;--yel:#FFD814;--bg:#EAEDED;--card:#fff;--line:#D5D9D9;--mut:#565959;--tx:#0F1111;--lk:#007185;--red:#CC0C39;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
@media (prefers-color-scheme:dark){:root{--bg:#0F1720;--card:#1A2533;--line:#2C3B4D;--mut:#A5B3C2;--tx:#EEF2F5;--lk:#4CC3D9}}
*,*:before,*:after{box-sizing:inherit}
body{margin:0;background:var(--bg);color:var(--tx);font:15px/1.45 'Nunito Sans',system-ui,sans-serif}
h1,h2,h3{margin:0;line-height:1.2}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}
:focus-visible{outline:3px solid var(--or);outline-offset:2px}
.hd{position:sticky;top:0;z-index:20;background:var(--nav);color:#fff}
.h1{max-width:1300px;margin:auto;display:flex;gap:12px;align-items:center;padding:8px 12px;flex-wrap:wrap}
.lg img{height:44px;display:block}
.sr{flex:1;min-width:240px;display:flex;border-radius:8px;overflow:hidden;background:#fff}
.sr input{flex:1;border:0;padding:11px 12px;min-width:0;color:#111;background:#fff}
.sr button{border:0;background:var(--or);padding:0 16px;font-size:18px}
.cb{background:none;border:0;color:#fff;font-size:22px;display:flex;align-items:center;gap:4px;margin-left:auto}.cb b{font-size:14px}
.cb span{background:var(--or);border-radius:99px;font-size:13px;font-weight:800;padding:0 7px}
.sub{background:var(--sub);display:flex;gap:2px;overflow-x:auto;padding:0 8px;scrollbar-width:none}
.sub button{flex:none;background:none;border:0;color:#fff;padding:9px 10px;font-size:14px;white-space:nowrap}.sub .on{font-weight:800;color:var(--or)}
main{max-width:1300px;margin:auto;padding:12px}
.hero{background:linear-gradient(110deg,#FF6600,#C94700 55%,#232F3E);color:#fff;border-radius:6px;padding:28px 24px;margin-bottom:12px}
.hero h1{font-size:clamp(24px,4.5vw,38px);max-width:620px}.hero p{max-width:520px;margin:8px 0 0}
.btn{border:1px solid #FCD200;background:var(--yel);color:#0F1111;border-radius:99px;padding:9px 18px;font-weight:700}
.btn.o{background:#FFA41C;border-color:#FF8F00}.btn.g{background:var(--card);border-color:var(--line);color:var(--tx)}.btn.r{background:#fff0f0;border-color:#e6a0a0;color:var(--red)}.btn.w{width:100%}.btn:disabled{opacity:.5}
.rh{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:var(--card);padding:10px 12px;margin-bottom:10px}.rh h2{font-size:18px;flex:1}
select,input,textarea{border:1px solid var(--line);border-radius:6px;background:var(--card);padding:8px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}
.pc{background:var(--card);padding:10px;display:flex;flex-direction:column;gap:5px}
.im{aspect-ratio:1;display:grid;place-items:center;background:#f4f4f4;cursor:pointer;overflow:hidden}.im img{width:100%;height:100%;object-fit:contain}.em{font-size:56px}
.t{font-size:14px;cursor:pointer;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.t:hover{color:var(--or)}
.pr{font-size:22px;font-weight:600}.pr small{font-size:12px;vertical-align:top}.old{color:var(--mut);text-decoration:line-through;font-size:13px}.mut{color:var(--mut);font-size:13px}
.bd{background:var(--red);color:#fff;font-weight:800;font-size:12px;padding:2px 7px;border-radius:3px}
.ok{color:#007600;font-size:13px}.low{color:var(--red);font-size:13px}
.empty{grid-column:1/-1;background:var(--card);padding:40px 12px;text-align:center;color:var(--mut)}
.ov{position:fixed;inset:0;background:rgba(15,17,17,.6);z-index:40;display:none;align-items:center;justify-content:center;padding:14px}.ov.on{display:flex}
.md{background:var(--card);border-radius:8px;max-width:900px;width:100%;max-height:100%;overflow:auto;display:grid;grid-template-columns:1fr 1.1fr 240px;gap:18px;padding:18px}.md .im{cursor:default}
.buy{border:1px solid var(--line);border-radius:8px;padding:14px;display:flex;flex-direction:column;gap:10px;align-self:start}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(430px,100%);background:var(--card);z-index:50;transform:translateX(100%);transition:transform .25s;display:flex;flex-direction:column}.drawer.on{transform:none}
.dh{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}.db{flex:1;overflow:auto;padding:12px 16px}.df{padding:12px 16px;border-top:1px solid var(--line);display:grid;gap:8px}
.ln{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}.ln .im{width:56px;flex:none;cursor:default}.ln .t{flex:1;cursor:default}
.q{display:flex;align-items:center;gap:6px}.q button{width:28px;height:28px;border:1px solid var(--line);background:var(--card);border-radius:50%}
.f{display:grid;gap:10px}.f label{font-size:13px;font-weight:700;display:grid;gap:3px}.f input,.f select,.f textarea{width:100%}
.pay label{display:flex;gap:8px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:9px;margin-bottom:6px;font-weight:600}.pay input{width:auto}
.tot{display:flex;justify-content:space-between;font-weight:800;font-size:18px}
.box{background:var(--card);padding:14px;margin-bottom:12px}.ar{display:flex;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.ar .im{width:52px;flex:none;cursor:default}.ar .t{flex:1;cursor:default;min-width:140px}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
#toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:#111;color:#fff;padding:10px 16px;border-radius:8px;z-index:90;display:none}
footer{background:var(--nav);color:#ccc;text-align:center;padding:18px 12px;font-size:13px;margin-top:20px}
@media (max-width:860px){.md{grid-template-columns:minmax(0,1fr)}.cb b{display:none}.lg img{height:36px}.sr{order:5;flex-basis:100%}}
.mc{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:12px}
.m{background:var(--card);padding:12px;border-radius:8px}.m small{color:var(--mut);display:block;font-size:12px}.m b{font-size:20px}.m span{font-size:12px;color:var(--mut);display:block}
.pos{color:#007600}.neg{color:var(--red)}
.bars{display:flex;align-items:flex-end;gap:4px;height:90px;margin-top:8px}.bars div{flex:1;background:var(--or);min-height:2px;border-radius:2px 2px 0 0}
.pers{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.pers .btn{padding:6px 12px;font-size:13px}
.sub a{flex:none}
.bg2{display:inline-block;border-radius:4px;padding:1px 6px;font-size:12px;font-weight:700}.bg2.w{background:#fff3cd;color:#7a5a00}.bg2.d{background:#fde2e2;color:var(--red)}
.bk{margin-bottom:12px;border-radius:6px;overflow:hidden}
.bs{padding:10px 14px;text-align:center}.bs .btn{padding:4px 12px;margin:0 0 0 6px}
.bh{padding:34px 24px;min-height:190px;display:flex;align-items:center}.bh h1{font-size:clamp(24px,4.5vw,40px);max-width:620px}.bh p{max-width:520px;margin:8px 0 0}
.bp{display:grid;grid-template-columns:1fr 1fr}.bp.r .bi{order:2}.bi{min-height:210px}.bt{padding:22px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.bt h2{font-size:24px;margin-bottom:6px}.bt p{margin:0}
.rowx{display:flex;gap:12px;overflow-x:auto;padding-bottom:6px;scroll-snap-type:x proximity}
.dc{flex:none;width:165px;scroll-snap-align:start;background:none;border:0;text-align:left;display:flex;flex-direction:column;gap:3px;padding:0;position:relative}.dc .bd{position:absolute;top:6px;left:6px}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:12px}
.tl{aspect-ratio:1.3;border-radius:6px;display:flex;align-items:flex-end;background-color:var(--line);text-decoration:none;color:#fff;overflow:hidden}.tl span{width:100%;padding:18px 10px 8px;background:linear-gradient(transparent,rgba(0,0,0,.7));font-weight:700}
@media (max-width:700px){.bp{grid-template-columns:minmax(0,1fr)}.bp.r .bi{order:0}}
/* Ventana del producto: evita que la imagen se encime sobre el texto */
.md{grid-auto-rows:max-content;align-content:start}
.md>*{min-width:0}
.md .im{width:100%;max-height:60vh}
@media (max-width:860px){.md .im{max-height:42vh}.md .buy>.pr{display:none}}
/* ===== Adaptación por tipo de dispositivo ===== */
html{-webkit-text-size-adjust:100%}
.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.dc{width:clamp(140px,42vw,200px)}
.pc{min-width:0}.pc .t{min-height:2.6em}
.drawer{width:min(440px,100%)}
@media (min-width:600px){main{padding:16px}.grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.hero,.bh{padding-left:32px;padding-right:32px}}
@media (min-width:900px){.grid{grid-template-columns:repeat(4,minmax(0,1fr))}.lg img{height:50px}}
@media (min-width:1200px){.grid{grid-template-columns:repeat(5,minmax(0,1fr))}.h1,main,footer>div{max-width:1400px}}
@media (min-width:1600px){.grid{grid-template-columns:repeat(6,minmax(0,1fr))}.h1,main{max-width:1600px}}
@media (max-width:520px){.g2{grid-template-columns:minmax(0,1fr)}.rh h2{flex-basis:100%}.bh{padding:22px 16px;min-height:150px}.bt{padding:16px}}
@media (hover:hover){.pc{transition:box-shadow .15s}.pc:hover{box-shadow:0 2px 10px rgba(0,0,0,.18)}.dc:hover .t{color:var(--or)}}
@media (pointer:coarse){.btn{min-height:44px}.q button{width:38px;height:38px}input,select,textarea{font-size:16px}.sub button{padding:11px 12px}}
@media (max-height:520px){.gm{max-height:70vh}.md .im{max-height:70vh}.lbt{padding-top:6px;padding-bottom:6px}}
/* Ventana del producto según el dispositivo */
.ov:has(.md){align-items:flex-start;overflow:auto}
.md{max-width:min(1100px,100%);margin:auto}
.md{grid-template-columns:minmax(0,1fr)}
@media (min-width:600px) and (max-width:1023px){.md{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.md .buy{grid-column:1/-1}.md .buy>.pr{display:block}}
@media (min-width:1024px){.md{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) 260px}.md .buy>.pr{display:block}}
/* Galería de fotos y ampliación */
.gal{display:flex;flex-direction:column;gap:8px;align-self:start;min-width:0}
.gm{position:relative;aspect-ratio:1;max-height:60vh;width:100%;background:#f4f4f4;border-radius:6px;overflow:hidden;display:grid;place-items:center}
@media (max-width:860px){.gm{max-height:46vh}}
.gz{border:0;background:none;padding:0;width:100%;height:100%;cursor:zoom-in;display:grid;place-items:center}.gz img{width:100%;height:100%;object-fit:contain}
.gn{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:50%;border:0;background:rgba(0,0,0,.55);color:#fff;font-size:26px;line-height:1;display:grid;place-items:center}.gn.l{left:6px}.gn.r{right:6px}
.gc,.gh{position:absolute;bottom:8px;background:rgba(0,0,0,.6);color:#fff;border-radius:99px;padding:1px 9px;font-size:12px}.gc{right:8px}.gh{left:8px;pointer-events:none}
.gt{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}.gt button{flex:none;width:58px;height:58px;border:2px solid var(--line);border-radius:6px;padding:0;background:#f4f4f4;overflow:hidden}.gt button.on{border-color:var(--or)}.gt img{width:100%;height:100%;object-fit:cover}
.lb{background:rgba(0,0,0,.95);z-index:70;display:none;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:0}.lb.on{display:flex}
.lbt{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:max(10px,env(safe-area-inset-top)) 12px 10px;color:#fff;font-size:14px}
.lbz{flex:1;overflow:auto;display:grid;place-items:center;min-height:0;-webkit-overflow-scrolling:touch}
.lbz img{max-width:100%;max-height:100%;object-fit:contain;cursor:zoom-in}
.lbz.zm{place-items:start}.lbz.zm img{max-width:none;max-height:none;width:230%;cursor:zoom-out}
.lb .gn{position:fixed;width:46px;height:46px}
.lbh{color:#ddd;text-align:center;font-size:12px;padding:8px 12px max(10px,env(safe-area-inset-bottom))}
/* ===== Punto de venta e impresión ===== */
.pos{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:12px;align-items:start}
@media (max-width:860px){.pos{grid-template-columns:minmax(0,1fr)}}
.ivw{background:#fff;color:#000;border-radius:8px;max-width:560px;width:100%;max-height:100%;overflow:auto}
.ivw .tb{display:flex;gap:8px;flex-wrap:wrap;padding:10px;border-bottom:1px solid #ddd;position:sticky;top:0;background:#fff}
.ivw .fm{padding:14px;color:#000}.ivw .fm label{color:#000}.ivw .fm input,.ivw .fm select,.ivw .fm textarea{background:#fff;color:#000}
.pp{padding:12px;display:flex;justify-content:center}
.paper{background:#fff;color:#000;font:13px/1.35 ui-monospace,Menlo,Consolas,monospace;padding:8px;width:100%}
.pp.t80 .paper{width:80mm;max-width:100%}.pp.a4 .paper{width:190mm;max-width:100%;font:14px/1.45 system-ui,sans-serif}
.paper table{width:100%;border-collapse:collapse}.paper td{padding:1px 0;vertical-align:top}.paper td.r{text-align:right;white-space:nowrap;padding-left:8px}
.paper hr{border:0;border-top:1px dashed #000;margin:6px 0}.paper .ctr{text-align:center}
@media print{
 body>*:not(#iv){display:none!important}
 #iv{position:static!important;display:block!important;background:none!important;padding:0!important}
 #iv .tb{display:none!important}.ivw{max-width:none!important;border-radius:0!important;overflow:visible!important}
 .pp{padding:0}
}
/* ===== Roles: lo que no ve un cajero ===== */
.staff .own,.staff [data-o],.staff [data-pd]{display:none!important}
.sub [hidden]{display:none!important}

[hidden]{display:none!important}
/* ===== Fase 3: dinamismo ===== */
.chip{flex:none;border:1px solid var(--line);background:var(--card);color:var(--tx);border-radius:99px;padding:6px 12px;font-weight:600;font-size:13px}.chip.on{background:var(--sub);color:#fff;border-color:var(--sub)}
.fl{background:var(--card);padding:8px 10px;margin-bottom:10px;border-radius:6px;display:grid;gap:6px}.fg{display:flex;gap:6px;overflow-x:auto;align-items:center;padding-bottom:2px}.fg .mut{flex:none;min-width:48px}
.im{position:relative}.fv{position:absolute;top:6px;right:6px;width:36px;height:36px;border-radius:50%;border:0;background:rgba(255,255,255,.92);color:#999;font-size:18px;line-height:1;display:grid;place-items:center;box-shadow:0 1px 4px rgba(0,0,0,.25);z-index:2}.fv.on{color:#e0245e}
.srw{flex:1;min-width:240px;position:relative}.srw .sr{min-width:0;width:100%}
.sg{position:absolute;left:0;right:0;top:calc(100% + 4px);background:var(--card);color:var(--tx);border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,.35);z-index:60;overflow:hidden}
.sgi{display:flex;gap:10px;align-items:center;width:100%;border:0;background:none;padding:8px 10px;text-align:left;border-bottom:1px solid var(--line);color:var(--tx)}.sgi b{flex:1;font-size:14px;font-weight:600}.sgi:hover,.sgi:focus-visible{background:var(--bg)}
.sgm{width:36px;height:36px;border-radius:6px;background:#f4f4f4;display:grid;place-items:center;overflow:hidden;flex:none;font-size:20px}.sgm img{width:100%;height:100%;object-fit:cover}
.shb{margin:6px 0;font-size:13px}.pb{height:8px;background:var(--line);border-radius:99px;overflow:hidden;margin-top:4px}.pb i{display:block;height:100%;background:var(--or);border-radius:99px;transition:width .35s}
.sk .im,.sk .t{background:linear-gradient(90deg,var(--line) 25%,var(--card) 50%,var(--line) 75%);background-size:200% 100%;animation:sk 1.2s infinite;border-radius:6px;color:transparent}
.slider{position:relative;margin-bottom:12px}.slide{display:none}.slide.on{display:block;animation:fin .45s ease both}.slider .bk{margin-bottom:0}.slider .gn{z-index:3}
.dots{position:absolute;left:0;right:0;bottom:8px;display:flex;gap:6px;justify-content:center;z-index:3}.dots button{width:10px;height:10px;border-radius:99px;border:0;background:rgba(255,255,255,.55);padding:0}.dots button.on{background:#fff;width:22px}
.wa{position:fixed;right:14px;bottom:calc(14px + env(safe-area-inset-bottom));width:54px;height:54px;border-radius:50%;background:#25D366;color:#fff;display:grid;place-items:center;font-size:26px;text-decoration:none;box-shadow:0 4px 14px rgba(0,0,0,.35);z-index:25}
#toast .tb{margin-left:8px;border:0;border-radius:99px;background:var(--or);color:#fff;padding:4px 12px;font-weight:700}
.pulse{animation:pulse .45s ease}
.tl2{display:flex;list-style:none;padding:0;margin:12px 0}.tl2 li{flex:1;text-align:center;font-size:12px;color:var(--mut);position:relative;padding-top:26px}
.tl2 li:before{content:'';position:absolute;top:6px;left:50%;width:16px;height:16px;margin-left:-8px;border-radius:50%;background:var(--line);z-index:1}
.tl2 li:after{content:'';position:absolute;top:13px;left:-50%;width:100%;height:3px;background:var(--line);z-index:0}.tl2 li:first-child:after{display:none}
.tl2 li.done{color:var(--tx);font-weight:700}.tl2 li.done:before,.tl2 li.done:after{background:var(--or)}
@keyframes fin{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes sk{to{background-position:-200% 0}}@keyframes pulse{40%{transform:scale(1.35)}}
.pc{animation:fin .3s ease both}
@media (max-width:860px){.srw{order:5;flex-basis:100%}}
@media (prefers-reduced-motion:reduce){.pc,.slide.on,.pulse,.sk .im,.sk .t{animation:none!important}.pb i{transition:none}}

/* ===== Etiquetas de código de barras ===== */
.lbls{display:grid;grid-template-columns:repeat(3,1fr);gap:3mm;width:100%}
.lb1{border:1px dashed #999;padding:2mm;text-align:center;font:11px/1.25 Arial,sans-serif;color:#000;background:#fff;break-inside:avoid}
.lb1 .bc{height:13mm;margin:1mm 0}.lb1 .bc svg{width:100%;height:100%;display:block}.lb1 svg rect{fill:#000}.lb1 small{letter-spacing:1px}
/* ===== Tema editable, texto enriquecido y bloques nuevos ===== */
[data-theme="dark"]{--bg:#0F1720;--card:#1A2533;--line:#2C3B4D;--mut:#A5B3C2;--tx:#EEF2F5;--lk:#4CC3D9}
[data-theme="light"]{--bg:#EAEDED;--card:#fff;--line:#D5D9D9;--mut:#565959;--tx:#0F1111;--lk:#007185}
body{font-family:var(--font,'Nunito Sans',system-ui,sans-serif)}
.hd{color:var(--hdtx,#fff)}.cb,.h1>b{color:var(--hdtx,#fff)}
.sr{background:var(--sin,#fff)}.sr input{background:var(--sin,#fff);color:var(--sit,#111)}.sr button{background:var(--sbtn,var(--or))}
.sub button{color:var(--subtx,#fff)}
.btn{background:var(--btn,var(--yel));color:var(--btntx,#0F1111);border-color:var(--btn,var(--yel));border-radius:var(--rbtn,99px)}
.btn.o{background:var(--cta,#FFA41C);color:var(--ctatx,#0F1111);border-color:var(--cta,#FFA41C)}
.btn.g{background:var(--card);color:var(--tx);border-color:var(--line)}
.btn.r{background:#fff0f0;color:var(--red);border-color:#e6a0a0}
.hero{background:linear-gradient(110deg,var(--or),color-mix(in srgb,var(--or) 72%,#000) 55%,var(--sub))}
footer{background:var(--foot,var(--nav));color:var(--foottx,#ccc)}
.pc{border-radius:var(--rc,0)}.bk{border-radius:var(--rc,6px)}
#ann{text-align:center;padding:8px 12px;font-size:14px}#ann a{display:block}
.rtx{line-height:1.6;overflow-wrap:anywhere}.rtx p{margin:0 0 .8em}.rtx h2{font-size:1.5em;margin:.9em 0 .4em}.rtx h3{font-size:1.2em;margin:.8em 0 .3em}.rtx h4{margin:.6em 0 .2em}
.rtx ul,.rtx ol{margin:.4em 0 .9em;padding-left:1.4em}.rtx blockquote{margin:.8em 0;padding:.4em 1em;border-left:4px solid var(--or);background:var(--bg);color:var(--mut)}
.rtx hr{border:0;border-top:1px solid var(--line);margin:1em 0}.rtx a{color:var(--lk)}.rtx img{max-width:100%;height:auto;border-radius:6px}
.rte{border:1px solid var(--line);border-radius:8px;background:var(--card);overflow:visible}
.rtb{display:flex;flex-wrap:wrap;gap:4px;align-items:center;padding:6px;border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:5;border-radius:8px 8px 0 0}
.rtb button{border:1px solid var(--line);background:var(--card);color:var(--tx);border-radius:6px;min-width:34px;height:34px;padding:0 8px;font-size:14px}.rtb button:hover{border-color:var(--or)}
.rtb select{height:34px;padding:0 6px;width:auto}.rtb input[type=color]{width:36px;height:34px;padding:2px;border:1px solid var(--line);border-radius:6px;background:var(--card)}
.rtb .sep{width:1px;height:22px;background:var(--line);margin:0 2px}
.rtc{padding:12px;min-height:140px;outline:none;color:var(--tx);border-radius:0 0 8px 8px}.rtc:focus{box-shadow:inset 0 0 0 2px var(--or)}
.bnf{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;padding:14px;background:var(--card)}.bnf>div{display:flex;gap:10px;align-items:center}.bnf .ic{font-size:30px}.bnf small{display:block;color:var(--mut)}
.cdn{padding:24px 18px;text-align:center;color:#fff;background:var(--sub)}.cdn h2{font-size:clamp(22px,4vw,32px)}.cdn p{margin:6px 0 0}
.cdt{display:flex;gap:10px;justify-content:center;margin:14px 0;flex-wrap:wrap}.cdt span{min-width:68px;padding:10px 8px;border-radius:10px;background:rgba(0,0,0,.28);font-size:28px;font-weight:800;display:block;line-height:1.1}.cdt small{display:block;font-size:11px;font-weight:600;opacity:.85}
.rich{padding:18px;background:var(--card)}
.thg{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:start}@media (max-width:900px){.thg{grid-template-columns:minmax(0,1fr)}}
.cf{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--line);font-weight:600;font-size:14px}.cf input[type=color]{width:44px;height:30px;padding:2px;border:1px solid var(--line);border-radius:6px;background:var(--card)}
.pvw{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--bg);position:sticky;top:130px}.pvw .hd{position:static}.pvw .sr input{pointer-events:none}
.ctn{font-size:13px;margin:2px 0}.ctn.bad{color:var(--red);font-weight:700}.ctn.ok{color:#1d6b1d}
/* Título del banner: que ocupe todo el ancho disponible y, si debe partirse, lo haga parejo */
.hero h1,.bh h1{max-width:min(100%,1000px);text-wrap:balance}

/* ===== Adaptación a cada dispositivo ===== */
.thg>div{min-width:0}
@media (max-width:900px){.thg{grid-template-columns:minmax(0,1fr)}.pvw{position:static}}
.cf select{max-width:58%}
@media (pointer:coarse){.rtb button,.rtb select{height:42px;min-width:42px}.rtb input[type=color]{height:42px;width:44px}}
@media (max-width:600px){
 .rtx [style*="font-size:2.1em"]{font-size:1.55em!important}.rtx [style*="font-size:1.6em"]{font-size:1.3em!important}
 .cdt span{min-width:58px;font-size:22px;padding:8px 6px}.cdn{padding:18px 12px}.bnf{padding:12px}.rich{padding:14px}
 .rtb{gap:3px;padding:5px}
}
@media (max-width:900px){.thg>div:last-child{order:-1}}

/* ===== Asistente de la tienda ===== */
[hidden]{display:none!important}
.asb{position:fixed;right:14px;bottom:calc(14px + 54px + 12px + env(safe-area-inset-bottom));z-index:26;display:flex;align-items:center;gap:6px;background:var(--cta,#FFA41C);color:var(--ctatx,#0F1111);border:0;border-radius:99px;padding:10px 16px 10px 12px;font-weight:800;font-size:15px;box-shadow:0 4px 14px rgba(0,0,0,.35)}
.asb .ase{font-size:22px;line-height:1}
.astz{position:fixed;right:14px;bottom:calc(14px + 54px + 12px + 52px + env(safe-area-inset-bottom));z-index:26;background:var(--card);color:var(--tx);border:1px solid var(--line);border-radius:12px;padding:10px 30px 10px 12px;box-shadow:0 6px 20px rgba(0,0,0,.3);font-size:14px;max-width:230px}
.astx{position:absolute;top:2px;right:2px;border:0;background:none;color:var(--mut);width:28px;height:28px;font-size:14px}
.asp{position:fixed;right:14px;bottom:calc(14px + env(safe-area-inset-bottom));width:min(390px,calc(100vw - 28px));height:min(600px,calc(100dvh - 28px));z-index:45;background:var(--card);color:var(--tx);border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 40px rgba(0,0,0,.45);display:flex;flex-direction:column;overflow:hidden}
.ash{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--nav);color:var(--hdtx,#fff)}.ash .ase{font-size:26px}.ash div{flex:1;line-height:1.2}.ash small{display:block;opacity:.8;font-size:12px}
.asx{border:0;background:rgba(255,255,255,.15);color:inherit;width:36px;height:36px;border-radius:50%;font-size:16px}
.asm{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px;background:var(--bg);overscroll-behavior:contain}
.asg{max-width:92%;padding:9px 12px;border-radius:14px;line-height:1.45;font-size:14.5px;overflow-wrap:anywhere}
.asg.b{align-self:flex-start;background:var(--card);border:1px solid var(--line);border-bottom-left-radius:4px}
.asg.u{align-self:flex-end;background:var(--btn,var(--yel));color:var(--btntx,#0F1111);border-bottom-right-radius:4px}
.asg p{margin:0 0 6px}.asg p:last-child{margin-bottom:0}.asg ul,.asg ol{margin:4px 0 6px;padding-left:20px}.asg a{color:var(--lk)}
.asa{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.asbn{border:1px solid var(--line);background:var(--card);color:var(--tx);border-radius:99px;padding:7px 12px;font-size:13.5px;font-weight:700;text-decoration:none;display:inline-block;min-height:34px}
.asbn:hover{border-color:var(--or)}.asbn.wa2{background:#25D366;border-color:#25D366;color:#073b1b}
.asr{display:flex;gap:10px;margin-top:8px;padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.asi{width:64px;height:64px;flex:none;border-radius:8px;background:#f4f4f4;display:grid;place-items:center;overflow:hidden;font-size:30px}.asi img{width:100%;height:100%;object-fit:contain}
.asd{min-width:0;flex:1}.asd b{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:13.5px;line-height:1.25}.asd small{color:var(--mut)}.asd s{color:var(--mut);font-size:12px}.asp2{font-weight:800;font-size:15px}
.asd .asa{margin-top:4px}.asd .asbn{padding:5px 11px;min-height:30px}
.asq{display:flex;gap:6px;overflow-x:auto;padding:8px 10px;border-top:1px solid var(--line);scrollbar-width:none;background:var(--card)}.asq::-webkit-scrollbar{display:none}
.asq button{flex:none;border:1px solid var(--line);background:var(--card);color:var(--tx);border-radius:99px;padding:6px 12px;font-size:13px;font-weight:700;white-space:nowrap}.asq button:hover{border-color:var(--or)}
.asf{display:flex;gap:8px;padding:8px 10px calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--card)}
.asf input{flex:1;min-width:0;border:1px solid var(--line);border-radius:99px;padding:10px 14px;font-size:16px;background:var(--bg);color:var(--tx)}
.asf button{border:0;background:var(--cta,#FFA41C);color:var(--ctatx,#0F1111);width:42px;height:42px;border-radius:50%;font-size:17px;font-weight:800}
.asty{display:inline-flex;gap:4px;padding:2px 0}.asty i{width:7px;height:7px;border-radius:50%;background:var(--mut);animation:asb 1s infinite ease-in-out}.asty i:nth-child(2){animation-delay:.15s}.asty i:nth-child(3){animation-delay:.3s}
@keyframes asb{0%,80%,100%{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
@media (prefers-reduced-motion:reduce){.asty i{animation:none;opacity:.6}}
@media (max-width:600px){.asp{inset:0;width:auto;height:100dvh;border-radius:0;border:0;padding-top:env(safe-area-inset-top)}.ash{padding-top:calc(10px + env(safe-area-inset-top))}.asp{padding-top:0}}
/* Asistente: paso a una persona e información base */
.ash2{border:1px solid rgba(255,255,255,.45);background:rgba(255,255,255,.12);color:inherit;border-radius:99px;padding:6px 11px;font-size:13px;font-weight:700;white-space:nowrap;min-height:34px}
.ash div{min-width:0}.ash b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.asho{margin-top:6px}.asho .asn2{width:100%;border:1px solid var(--line);border-radius:10px;padding:9px 12px;font-size:16px;background:var(--bg);color:var(--tx);margin:4px 0 8px}
.asmu{color:var(--mut);font-size:12.5px;margin:4px 0 0}.askb{margin-top:8px;padding-top:8px;border-top:1px dashed var(--line)}
#astr a,#astr button,#astr input{pointer-events:none}

/* ===== Banners: el texto se adapta a cada dispositivo ===== */
.bk,.tl,.cdn,.rich,.bnf{overflow-wrap:anywhere}
.bh p,.bt p,.bs,.cdn p{text-wrap:pretty}
.bk .btn,.bh .btn,.bt .btn,.bs .btn{max-width:100%;white-space:normal;text-align:center;line-height:1.25;margin-left:0}
/* principal con imagen: oscurece lo justo para que el texto se lea (más parejo en teléfono, donde el texto ocupa todo el ancho) */
.bhi{background:linear-gradient(90deg,rgba(0,0,0,.62),rgba(0,0,0,.2)),var(--bi) center/cover}
.bhi h1,.bhi p{text-shadow:0 1px 4px rgba(0,0,0,.5)}
@media (max-width:700px){.bhi{background:linear-gradient(rgba(0,0,0,.55),rgba(0,0,0,.55)),var(--bi) center/cover}}
/* franja: alineada y sin saltos raros cuando el texto o el botón son largos */
.bs{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 12px}.bs .btn{margin:0;padding:6px 14px}
/* mosaico: el título nunca se corta; la tarjeta crece (máximo 4 líneas) */
.tl{aspect-ratio:auto;min-height:clamp(120px,24vw,170px);align-items:flex-end}
.tl span{font-size:clamp(14px,3.4vw,17px);line-height:1.25;text-shadow:0 1px 3px rgba(0,0,0,.6);background:linear-gradient(transparent,rgba(0,0,0,.82) 45%);padding:26px 10px 10px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;line-clamp:4;overflow:hidden}
/* carrusel: las flechas y los puntos no tapan el texto */
.slides{display:grid}.slide{display:block;grid-area:1/1;visibility:hidden;opacity:0;transition:opacity .45s ease}.slide.on{visibility:visible;opacity:1;animation:none}.slide>.bk{height:100%}
.slider .bh{padding-left:64px;padding-right:64px;padding-bottom:46px}
@media (max-width:700px){.slider .bh{padding:22px 16px 62px}.slider .gn{top:auto;bottom:10px;transform:none;width:38px;height:38px}.slider .gn.l{left:10px}.slider .gn.r{right:10px}.slider .dots{bottom:20px}}
.cdt small{font-size:12px}
.slider .dots{pointer-events:none}.slider .dots button{pointer-events:auto}

/* Legibilidad: el texto blanco sobre el banner principal llega al contraste recomendado (4.5:1) */
.hero{background:linear-gradient(110deg,color-mix(in srgb,var(--or) 76%,#000),color-mix(in srgb,var(--or) 60%,#000) 60%,var(--sub))}
.bhi{background:linear-gradient(90deg,rgba(0,0,0,.72),rgba(0,0,0,.58) 65%,rgba(0,0,0,.32)),var(--bi) center/cover}
@media (max-width:700px){.bhi{background:linear-gradient(rgba(0,0,0,.6),rgba(0,0,0,.6)),var(--bi) center/cover}}
.bhi{background:linear-gradient(90deg,rgba(0,0,0,.72),rgba(0,0,0,.6) 60%,rgba(0,0,0,.5)),var(--bi) center/cover}
@media (max-width:700px){.bhi{background:linear-gradient(rgba(0,0,0,.6),rgba(0,0,0,.6)),var(--bi) center/cover}}
@media (max-width:340px){.bh h1{font-size:21px}.bh p{font-size:14.5px}}

.hero{background:#B34700}.hero{background:linear-gradient(110deg,color-mix(in srgb,var(--or) 76%,#000),color-mix(in srgb,var(--or) 60%,#000) 60%,var(--sub))}

/* Asistente en teléfono: botón redondo (del tamaño del de WhatsApp) para no tapar los productos; la etiqueta se ve unos segundos al entrar */
@media (max-width:600px){
 .asb{width:54px;height:54px;padding:0;justify-content:center;bottom:calc(14px + 54px + 10px + env(safe-area-inset-bottom))}
 .asb .ase{font-size:26px}
 .asb:not(.ex) .asl{display:none}
 .asb.ex{width:auto;height:48px;padding:0 16px 0 12px;bottom:calc(14px + 54px + 10px + 3px + env(safe-area-inset-bottom))}
 .astz{bottom:calc(14px + 54px + 10px + 54px + 8px + env(safe-area-inset-bottom))}
}

/* Títulos de banner: el texto llena toda la línea disponible (sin partirse antes de tiempo) */
.hero h1,.bh h1,.bt h2,.cdn h2{text-wrap:wrap}
.asb{min-height:44px}

/* El asistente es el único botón flotante: va en la esquina (el botón verde de WhatsApp ya no se muestra mientras el asistente esté activo) */
.asb{bottom:calc(14px + env(safe-area-inset-bottom))}
.astz{bottom:calc(14px + 54px + 10px + env(safe-area-inset-bottom))}
@media (max-width:600px){.asb{bottom:calc(14px + env(safe-area-inset-bottom))}.asb.ex{bottom:calc(17px + env(safe-area-inset-bottom))}.astz{bottom:calc(14px + 54px + 10px + env(safe-area-inset-bottom))}}

/* r20: el texto de los banners usa todo el ancho disponible (teléfono y PC) */
.bh>div{flex:1 1 auto;min-width:0}
.bh p,.hero p,.bt p,.cdn p{max-width:100%;text-wrap:wrap}
.bs{text-wrap:wrap}
.hero h1,.bh h1,.bt h2,.cdn h2{max-width:100%;text-wrap:wrap}

/* r21: tiras de productos con barra oculta y flechas pequeñas al centro de los lados */
.rwx{position:relative}
.rowx{scrollbar-width:none;-ms-overflow-style:none;padding-bottom:0;scroll-behavior:smooth}
.rowx::-webkit-scrollbar{display:none;width:0;height:0}
.rar{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:30px;height:30px;border-radius:50%;border:0;background:rgba(0,0,0,.62);color:#fff;font-size:20px;line-height:1;display:none;align-items:center;justify-content:center;cursor:pointer;padding:0 0 3px;box-shadow:0 1px 5px rgba(0,0,0,.4)}
.rar.l{left:4px}.rar.r{right:4px}
.rar:hover,.rar:focus-visible{background:var(--or,#FF6600)}
.rwx.rov .rar{display:flex}.rwx.rov.rs0 .rar.l,.rwx.rov.rs1 .rar.r{display:none}
@media (hover:none){.rar{width:28px;height:28px;font-size:18px}}
.rwx{min-width:0;max-width:100%}

/* r22: gráfico Ventas por día — columnas con ancho máximo, valor arriba y fecha abajo (con 1 solo día ya no llena todo el ancho) */
.bars{height:150px;gap:10px;justify-content:flex-start;align-items:stretch;overflow-x:auto;padding-bottom:2px}
.bars .bc{flex:1 1 0;min-width:44px;max-width:76px;display:flex;flex-direction:column;align-items:center;gap:4px;background:none;border-radius:0;min-height:0}
.bars .bc em{font-style:normal;font-size:11px;font-weight:700;white-space:nowrap}
.bars .bw{flex:1;width:100%;display:flex;align-items:flex-end;background:none;min-height:0}
.bars .bw i{display:block;width:100%;background:var(--or);border-radius:4px 4px 0 0;min-height:3px}
.bars .bc small{font-size:11px;color:var(--mut)}

/* r24: compartir producto */
.shm{display:grid;gap:6px}.shm[hidden]{display:none}.shm a.btn{display:block;text-align:center;text-decoration:none;box-sizing:border-box}

/* r25 compartir: menú flotante */
.shw{position:relative}.shm{position:absolute;left:0;right:0;bottom:calc(100% + 6px);z-index:30;background:#fff;border:1px solid #d5d9d9;border-radius:14px;padding:8px;box-shadow:0 8px 24px rgba(0,0,0,.22)}

/* r26: artículo como página completa */
#mv.on{position:static;inset:auto;display:block;background:transparent;padding:0;overflow:visible;z-index:auto;max-width:1300px;margin:0 auto}
@media (min-width:600px){#mv.on{padding:4px 16px}}
@media (min-width:1600px){#mv.on{max-width:1600px}}
body:has(#mv.on) #main{display:none}
#mv.on .md{max-width:none;max-height:none;overflow:visible;margin:12px 0;box-shadow:0 1px 3px rgba(0,0,0,.12)}
#mv.on .md .pvb{grid-column:1/-1;justify-self:start;width:auto;padding:6px 14px}

body:has(#mv.on) #nav{display:none}

/* r29: avisos, confirmaciones y botones con estado (admin y caja) */
#toast.ok,#toast.err{align-items:center;gap:10px;width:max-content;max-width:min(560px,calc(100vw - 24px));color:#fff;font-weight:600;padding:12px 14px;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.35);animation:tin .18s ease-out;text-align:left}
#toast.ok{background:#12351f}#toast.err{background:#5c0d1b}
#toast.ok .ti{color:#6fe39a;font-weight:800}#toast.err .ti{color:#ff9aa8;font-weight:800}
#toast.ok .tb,#toast.err .tb{margin-left:4px;background:transparent;color:#ffd814;border:0;font-weight:800;text-transform:uppercase;font-size:13px;padding:4px 6px;cursor:pointer}
#toast .tx{background:none;border:0;color:#fff;opacity:.6;font-size:18px;cursor:pointer;padding:0 2px;line-height:1}
@keyframes tin{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}
.askov{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:120;display:flex;align-items:center;justify-content:center;padding:16px}
.ask{background:var(--card,#fff);color:inherit;border-radius:12px;padding:18px;max-width:380px;width:100%;box-shadow:0 12px 40px rgba(0,0,0,.4)}
.ask b{font-size:17px;display:block}.ask p{margin:8px 0 16px;opacity:.8;font-size:14px;line-height:1.4}
.aab{display:flex;gap:10px;justify-content:flex-end}.btn.dn{background:#c8102e;color:#fff;border-color:#c8102e}
.btn.busy{opacity:.7;pointer-events:none}.spn{display:inline-block;width:13px;height:13px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;vertical-align:-2px;margin-right:6px;animation:spn .7s linear infinite}
@keyframes spn{to{transform:rotate(360deg)}}
.ar.hl{animation:hl 1.3s ease-out;border-left:4px solid #1a9e4a;padding-left:6px}
@keyframes hl{0%{background:#c8f0d3}100%{background:transparent}}
.hrow{display:flex;gap:8px;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}

/* r35: pedidos con color por estado */
.ordc{border-left:6px solid var(--oc,#6b7280)}
.osc{display:inline-block;font-size:12px;font-weight:800;padding:2px 10px;border-radius:20px;background:color-mix(in srgb,var(--oc,#6b7280) 16%,#fff);color:var(--oc,#6b7280);text-transform:capitalize}
.ost{display:flex;align-items:center;flex-wrap:wrap;margin:8px 0}
.osp{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;color:#9ca3af}
.osp i{font-style:normal;width:20px;height:20px;border-radius:50%;background:#e5e7eb;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:11px}
.osp.d{color:#166534}.osp.d i{background:#16a34a}.osp.c{color:inherit}.osp.c i{background:var(--oc,#2563eb);box-shadow:0 0 0 4px color-mix(in srgb,var(--oc,#2563eb) 25%,transparent)}
.osl{width:28px;height:3px;background:#e5e7eb;margin:0 6px}.osl.d{background:#16a34a}
.osx{color:#991b1b;font-weight:700;font-size:13px;margin:6px 0}
.btn.ordnx{background:var(--oc,#2563eb);color:#fff;border-color:var(--oc,#2563eb)}
@media (max-width:520px){.osl{width:10px;margin:0 3px}.osp{font-size:11px;gap:3px}.osp i{width:18px;height:18px}}

/* r37 opiniones */
.rts{display:flex;gap:6px;align-items:center;font-size:13px;margin:2px 0}.rts.big{cursor:pointer;font-size:15px;margin:6px 0}
.st{color:#f59e0b;letter-spacing:1px}
.rvs{margin-top:22px;padding-top:14px;border-top:1px solid var(--bd,#e5e7eb)}.rvs h3{margin:0 0 10px}
.rvsum{display:flex;gap:22px;align-items:center;flex-wrap:wrap;margin:6px 0 14px}
.rvbig{font-size:42px;font-weight:800;line-height:1}
.rvbars{flex:1;min-width:180px;font-size:13px}.rvbars div{display:flex;gap:8px;align-items:center;margin:2px 0}
.rvbars i{flex:1;height:8px;background:#e5e7eb;border-radius:4px;overflow:hidden}.rvbars i b{display:block;height:100%;background:#f59e0b}
.rvc{border-top:1px solid var(--bd,#e5e7eb);padding:12px 0}.rvc p{margin:4px 0;overflow-wrap:anywhere;white-space:pre-line}
.rvok{font-size:12px;color:#16a34a;font-weight:600}
.rvph{width:84px;height:84px;object-fit:cover;border-radius:8px;margin-top:6px;display:block}
.rvrep{background:#fff4ec;border-left:3px solid #ff6600;padding:8px 10px;margin-top:8px;font-size:14px;border-radius:4px;color:#111}
.rvm{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:90;display:grid;place-items:center;padding:16px}
.rvf{background:#fff;color:#111;border-radius:14px;padding:18px;width:100%;max-width:440px;display:grid;gap:12px;max-height:92vh;overflow:auto}
.rvf h3{margin:0}.rvf label{display:grid;gap:6px;font-size:14px;font-weight:600}.rvf textarea{font:inherit;font-weight:400;padding:10px;border:1px solid #d1d5db;border-radius:8px;resize:vertical}
.rvstars{display:flex;gap:4px}.rvstars button{background:none;border:0;font-size:34px;color:#f59e0b;cursor:pointer;padding:0 2px;line-height:1}
.rvact{display:flex;gap:8px;justify-content:flex-end}
.md .rvs{grid-column:1/-1}
.md #rel{grid-column:1/-1}
.chips.wr{display:flex;flex-wrap:wrap;gap:6px}

/* r41 buscador de ajustes del administrador */
.gsw{position:relative;flex:1;min-width:190px;max-width:380px}.gsw input{width:100%;padding:8px 12px;border-radius:99px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.12);color:#fff}
.gsw input::placeholder{color:rgba(255,255,255,.7)}.gsw input:focus{background:#fff;color:#111}.gsw input:focus::placeholder{color:#6b7280}
.gsr{position:absolute;left:0;right:0;top:calc(100% + 6px);background:#fff;color:#111;border-radius:12px;box-shadow:0 8px 28px rgba(0,0,0,.28);overflow:hidden;z-index:60;min-width:min(340px,92vw)}
.gsi{display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:100%;text-align:left;background:#fff;border:0;border-bottom:1px solid #eee;padding:9px 12px;cursor:pointer;color:#111;font:inherit}
.gsi span{font-size:12px;color:#6b7280}.gsi.on,.gsi:hover{background:#fff1e6}.gsn{padding:12px;font-size:14px;color:#555}
.gsflash{background:#fff3b0;box-shadow:0 0 0 6px #fff3b0;border-radius:4px;transition:background .4s}

/* r43 etiquetas flexibles */
.lbw{max-width:min(1180px,100%)!important;height:min(92vh,900px)}
.lbbody{display:grid;grid-template-columns:minmax(300px,380px) 1fr;min-height:0;height:calc(100% - 56px)}
.lbctl{padding:12px;overflow:auto;border-right:1px solid #ddd;display:grid;gap:12px;align-content:start;color:#000}
.lbsec{display:grid;gap:6px;padding-bottom:10px;border-bottom:1px solid #eee}.lbsec label{display:grid;gap:3px;font-size:13px;font-weight:600;color:#000}
.lbsec input,.lbsec select{background:#fff;color:#000;border:1px solid #ccc;border-radius:8px;padding:7px 9px;font:inherit}
.lbf{display:grid;gap:6px}.lbbt{display:flex;gap:6px;flex-wrap:wrap}.lbbt .btn{padding:5px 10px;font-size:13px}
.lbr{max-height:240px;overflow:auto;border:1px solid #e5e5e5;border-radius:8px}.lbrow{display:flex;gap:8px;align-items:center;padding:6px 8px;border-bottom:1px solid #f0f0f0;font-size:13px;color:#000}
.lbrow .lbnm{flex:1;min-width:0}.lbrow input{width:64px;flex:none}.lbrow.off{opacity:.55}
.lbg{display:grid;grid-template-columns:1fr 1fr;gap:8px}.lbg2{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px}
.lbck{display:flex!important;gap:6px;align-items:center;font-weight:500!important}.lbck input{width:auto}
.lbmain{display:flex;flex-direction:column;min-width:0;min-height:0;background:#e9ecef}.lbsum{padding:8px 12px;font-size:14px;background:#fff;border-bottom:1px solid #ddd;color:#000}
.lbpv{flex:1;overflow:auto;padding:14px;zoom:.8}
.lbsheet{background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.25);margin:0 auto;box-sizing:border-box}.lbgrid{display:grid}
.lbroll{display:flex;flex-wrap:wrap;gap:4mm}.lbroll .lbx{box-shadow:0 1px 4px rgba(0,0,0,.25)}
.lbx{box-sizing:border-box;padding:1.2mm;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;overflow:hidden;background:#fff;color:#000;font-family:Arial,sans-serif;line-height:1.15;break-inside:avoid}
.lbx.gd{border:1px dashed #888}.lbx .lbn{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;max-width:100%}.lbx .lbs{font-size:.8em;letter-spacing:.5px;text-transform:uppercase}
.lbx .lbp{font-weight:800;font-size:1.25em}.lbx .lbc{width:92%;margin:.6mm 0}.lbx .lbc svg{width:100%;height:100%;display:block}.lbx .lbc svg rect{fill:#000}.lbx small{letter-spacing:1px;font-size:.85em}
@media (max-width:820px){.lbbody{grid-template-columns:1fr;overflow:auto;height:auto}.lbctl{border-right:0;border-bottom:1px solid #ddd}.lbw{height:auto;max-height:96vh}.lbpv{min-height:280px}}
@media print{
 .lbw{height:auto!important;max-width:none!important}.lbbody{display:block!important;height:auto!important}.lbctl,.lbsum{display:none!important}
 .lbmain,.lbpv{display:block!important;background:none!important;padding:0!important;overflow:visible!important;zoom:1!important}
 .lbsheet{box-shadow:none!important;padding:0!important;width:auto!important;margin:0!important}
 .lbroll{display:block!important}.lbroll .lbx{box-shadow:none!important;break-after:page;page-break-after:always;margin:0}
 .lbroll .lbx:last-child{break-after:auto;page-break-after:auto}
}

/* r46: las páginas (Sobre nosotros, Envíos…) son páginas normales, no ventanas flotantes */
#pgm.on{position:static;inset:auto;display:block;background:transparent;padding:0;overflow:visible;z-index:auto;max-width:1300px;margin:0 auto}
@media (min-width:600px){#pgm.on{padding:4px 16px}}
body:has(#pgm.on) #main,body:has(#pgm.on) #nav{display:none}
#pgm.on .md{max-width:none!important;max-height:none;overflow:visible;margin:12px 0;box-shadow:0 1px 3px rgba(0,0,0,.12)}
/* r46: con una página o un producto abierto, el pie va al final (no arriba) */
body:has(#pgm.on),body:has(#mv.on){display:flex;flex-direction:column;min-height:100vh}
body:has(#pgm.on) footer,body:has(#mv.on) footer{order:9;margin-top:auto}
body:has(#pgm.on) #pgm.on,body:has(#mv.on) #mv.on{width:100%;box-sizing:border-box}

/* r47: imágenes en páginas y descripciones (tamaño y posición) */
.rtx img.rti{display:block;height:auto;border-radius:8px;margin:.8em auto}
.rtx img.rti.w25{width:25%}.rtx img.rti.w50{width:50%}.rtx img.rti.w75{width:75%}.rtx img.rti.w100{width:100%}
.rtx img.rti.al{margin-left:0;margin-right:auto}.rtx img.rti.ar{margin-left:auto;margin-right:0}
@media (max-width:600px){.rtx img.rti.w25{width:45%}.rtx img.rti.w50{width:70%}}
.rte .rib{display:flex;flex-wrap:wrap;gap:4px;align-items:center;padding:6px;background:var(--bg);border-bottom:1px solid var(--line);font-size:13px}
.rte .rib[hidden]{display:none}
.rte .rib button{border:1px solid var(--line);background:var(--card);color:var(--tx);border-radius:6px;min-width:34px;height:34px;padding:0 8px}
.rte .rib input{flex:1;min-width:160px;height:34px}
.rtc img[data-sel]{outline:3px solid var(--or);outline-offset:2px}
@media (min-width:1600px){#pgm.on{max-width:1600px}}
#pgm.on .md{padding:24px 32px}
@media (max-width:600px){#pgm.on .md{padding:16px}}

/* r49: imágenes con tamaño libre y texto alrededor */
.rtx img.rti{display:block;height:auto;max-width:100%;margin:.8em auto}
.rtx img.rti.al{margin-left:0;margin-right:auto}.rtx img.rti.ar{margin-left:auto;margin-right:0}
.rtx img.rti.fl{float:left;margin:.3em 1.2em .8em 0}.rtx img.rti.fr{float:right;margin:.3em 0 .8em 1.2em}
.rtx::after{content:"";display:table;clear:both}
@media (max-width:600px){.rtx img.rti.fl,.rtx img.rti.fr{float:none;margin:.8em auto}}
.rte .rib b{font-size:13px}.rte .rib .sep{width:1px;height:22px;background:var(--line);margin:0 4px}
.rte .rib input[type=number]{width:72px;flex:none;min-width:0}.rte .rib select{width:auto;height:34px}
.rte .rib input[type=range]{flex:none;width:130px;min-width:0;height:auto;padding:0}
.rtc img.rti{cursor:grab}
/* r51: portada pro — estilo libre por bloque, galería, video y separador */
.bkx{display:block;position:relative;box-sizing:border-box}
.bkx.hasbg>*{background:transparent!important}
.bkx.hasbg .bk,.bkx.hasbg .box{box-shadow:none}
.bkx.fw{width:100vw;margin-left:calc(50% - 50vw);border-radius:0}
body{overflow-x:clip}
.bkx.ts-s :is(h1,h2){font-size:clamp(16px,3vw,22px)!important}
.bkx.ts-l :is(h1,h2){font-size:clamp(26px,5vw,44px)!important}
.bkx.ts-xl :is(h1,h2){font-size:clamp(32px,7vw,64px)!important}
.bkx.ts-xxl :is(h1,h2){font-size:clamp(38px,9vw,92px)!important;line-height:1.05}
.bkx :is(h1,h2,h3,p,span,b,small,a,label){font-family:inherit}
@keyframes bkfade{from{opacity:0}to{opacity:1}}
@keyframes bkup{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes bkzoom{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:no-preference){
 .bkx.an-fade{animation:bkfade .8s both}.bkx.an-up{animation:bkup .8s both}.bkx.an-zoom{animation:bkzoom .8s both}
 @supports (animation-timeline:view()){.bkx.an-fade,.bkx.an-up,.bkx.an-zoom{animation-duration:1ms;animation-timeline:view();animation-range:entry 0% entry 45%;animation-timing-function:ease-out}}}
@media (min-width:768px){.bkx.dv-m{display:none!important}}
@media (max-width:767px){.bkx.dv-d{display:none!important}}
.pgal{display:grid;grid-template-columns:repeat(var(--gc,3),minmax(0,1fr))}
@media (max-width:700px){.pgal{grid-template-columns:repeat(var(--gm,2),minmax(0,1fr))}}
.gi{margin:0;overflow:hidden;border-radius:inherit;position:relative}
.gi img{display:block;width:100%;height:auto;transition:transform .35s}.gi a:hover img{transform:scale(1.04)}
.gi a{display:block;overflow:hidden;border-radius:inherit}
.gi figcaption{padding:6px 4px;font-size:14px;text-align:center}
.vid{position:relative;aspect-ratio:16/9;margin:0 auto;border-radius:8px;overflow:hidden;background:#000}
.vid iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.vdc{text-align:center;margin:8px 0 0}
.spc{display:flex;align-items:center;justify-content:center;gap:12px;color:var(--mut);font-weight:700}
.spc i{flex:1;height:0;border-top:2px solid var(--lc,var(--line))}

/* r51: selector de emojis (administrador) */
#emo{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);width:min(440px,calc(100vw - 20px));max-height:46vh;display:flex;flex-direction:column;background:var(--card);color:var(--tx);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.35);z-index:9999}
#emo[hidden]{display:none}
#emo .emt{display:flex;gap:4px;overflow-x:auto;padding:8px;border-bottom:1px solid var(--line);flex:none}
#emo .emt button{flex:none;border:1px solid var(--line);background:var(--bg);color:var(--tx);border-radius:16px;padding:4px 10px;font-size:13px;white-space:nowrap}
#emo .emt button.on{background:var(--or);color:#fff;border-color:var(--or)}
#emo .emt .emx{margin-left:auto;border-radius:8px}
#emo .emg{display:grid;grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:2px;padding:8px;overflow:auto}
#emo .emg button{border:0;background:transparent;font-size:24px;height:40px;border-radius:8px;cursor:pointer}
#emo .emg button:hover{background:var(--bg)}

/* r52: etiqueta de versión única */
.verx{text-align:center;font-size:12px;color:var(--mut,#6b7280);padding:14px 12px}

/* r53: ordenar las fotos del producto arrastrando */
.phi{position:relative;width:92px;user-select:none;-webkit-user-select:none}
.phi .im{touch-action:pan-y}
.phi .phh{position:absolute;top:3px;left:3px;z-index:2;background:rgba(0,0,0,.62);color:#fff;border-radius:6px;padding:0 6px;line-height:22px;font-size:15px;cursor:grab;touch-action:none}
.phi.phd{opacity:.3;outline:2px dashed var(--or);outline-offset:2px;border-radius:6px}
.phg{position:fixed;z-index:10000;pointer-events:none;opacity:.94;box-shadow:0 10px 28px rgba(0,0,0,.45);transform:scale(1.06) rotate(2deg);border-radius:6px;background:var(--card);padding:2px}
.phg .phh{display:none}
body.phdrag,body.phdrag *{cursor:grabbing!important;user-select:none}

/* r56: pista de "hay más categorías" en el menú */
.navw{position:relative;background:var(--sub)}
.navm{position:absolute;top:0;bottom:0;width:56px;border:0;color:var(--or,#ff6a00);font-size:26px;font-weight:800;display:none;align-items:center;cursor:pointer;padding:0 10px;z-index:2}
.navm.nr{right:0;justify-content:flex-end;background:linear-gradient(90deg,transparent,var(--sub) 70%)}
.navm.nl{left:0;justify-content:flex-start;background:linear-gradient(270deg,transparent,var(--sub) 70%)}
.navw.mr .nr,.navw.ml .nl{display:flex}
.navw.mr .nr{animation:navnudge 1.6s ease-in-out 3}
@keyframes navnudge{0%,100%{transform:translateX(0)}50%{transform:translateX(5px)}}
@media (prefers-reduced-motion:reduce){.navw.mr .nr{animation:none}}

/* r58: galería del producto — foto grande y miniaturas en fila sin barra de desplazamiento */
.gal{width:100%}
.gt{flex-wrap:wrap;overflow:visible}.gt button{width:64px;height:64px}

/* r59: cuadrícula de existencia (color × talla) */
.vgw{overflow-x:auto;margin-top:6px;-webkit-overflow-scrolling:touch}
.vg{border-collapse:collapse;min-width:100%}.vg th,.vg td{padding:3px;text-align:center}
.vg th{font-size:12.5px;color:var(--mut);font-weight:600;white-space:nowrap}
.vg td.n{position:sticky;left:0;background:var(--bg);text-align:left;font-weight:700;white-space:nowrap;padding-right:10px;z-index:1}
.vgq{width:56px;min-width:56px;text-align:center;padding:9px 2px;font-weight:700}
.vg .tt{font-weight:700;padding:0 8px}.vg tfoot td{border-top:1px solid var(--line)}

/* r65: bloques de productos de la portada con la misma tarjeta que la lista (corazón, estrellas, existencia y botón de compra) */
.pc.sl{flex:none;width:clamp(150px,42vw,224px)}
.box.bpr{padding:20px 20px 16px}
.bph{display:flex;align-items:center;gap:10px;margin-bottom:16px}.bph h2{flex:1;font-size:21px;line-height:1.3;margin:0}
@media (max-width:600px){.box.bpr{padding:16px 12px 12px}.bph h2{font-size:18px}}
.pc>.btn.w{margin-top:auto}.rowx{align-items:stretch}
/* r66: sin barra de desplazamiento visible en las filas de botones (se desliza con el dedo, la rueda o arrastrando) */
.chips,.fg{scrollbar-width:none;-ms-overflow-style:none}.chips::-webkit-scrollbar,.fg::-webkit-scrollbar{display:none;width:0;height:0}
.chips{cursor:grab}.chips.dragging{cursor:grabbing;user-select:none}
/* r67: flechas laterales al centro en las filas de categorías */
.chw{position:relative}
.cha{position:absolute;top:calc(50% + 3px);transform:translateY(-50%);z-index:3;width:36px;height:36px;border-radius:50%;border:2px solid #fff;background:var(--or,#FF6600);color:#fff;font-size:24px;font-weight:800;line-height:1;display:none;align-items:center;justify-content:center;cursor:pointer;padding:0 0 3px;box-shadow:0 2px 8px rgba(0,0,0,.45)}
.cha.l{left:2px}.cha.r{right:2px}.cha:hover,.cha:focus-visible{background:#fff;color:var(--or,#FF6600);border-color:var(--or,#FF6600)}
.chw.mr .cha.r,.chw.ml .cha.l{display:flex}

/* r69: ahorras, WhatsApp en ficha, aviso de stock, barra fija, pie, pedido recibido */
.sv{color:#067d62;font-weight:700;font-size:13px}
.wab{background:#25D366!important;border-color:#1ebe5a!important;color:#fff!important}
.sal{margin:8px 0;padding:10px;border:1px dashed var(--line);border-radius:12px;background:var(--card)}
.sal .sar{display:flex;gap:6px;margin:6px 0}.sal input{flex:1;min-width:0}
.sbar{display:none}
@media(max-width:760px){footer{padding-bottom:78px}.sbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;align-items:center;gap:8px;padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:var(--card,#fff);border-top:1px solid var(--line,#ddd);box-shadow:0 -4px 14px rgba(0,0,0,.12);}
#mv.on .md{padding-bottom:84px}.sbar .btn{flex:1;padding:11px 8px;white-space:nowrap}.sbar .sbp{line-height:1.1;display:flex;flex-direction:column}.sbar .sbp b{font-size:18px}.sbar .sbp s{font-size:11px;color:var(--mut)}
body:has(#mv.on .sbar.on) .asb,body:has(#mv.on .sbar.on) .wa{margin-bottom:70px}}
.fx{display:flex;flex-wrap:wrap;gap:6px 14px;justify-content:center;margin:0 0 8px;font-size:13px}.fx:empty{display:none}.fx a{color:inherit;text-decoration:none;border-bottom:1px dotted currentColor}
.nx{margin:10px 0;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--card);text-align:left;font-size:14px}.nx ol{margin:6px 0 6px 18px;padding:0}.nx p{margin:4px 0 0}
