
:root{--bg:#eeeeee;--pn:#fff;--tx:#111;--bd:#b3b3b3;--tile:#fff;--mu:#505050;--blue:#0b6fa8;--red:#b71c1c;--green:#2b7a2f;--o:#EA580C;--gt:#1b6e20;--bt:#0b6fa8;--rt:#b71c1c}
[data-theme=dark]{--bg:#111;--pn:#1e1e1e;--tx:#f5f5f5;--bd:#5c5c5c;--tile:#2a2a2a;--mu:#bdbdbd;--gt:#6fcf75;--bt:#5ec2f2;--rt:#ff7a7a;--o:#FF7A2F}
[hidden]{display:none!important}*{box-sizing:border-box}
body{margin:0;font:15px system-ui,Segoe UI,sans-serif;background:var(--bg);color:var(--tx);height:100vh;height:100dvh;display:flex;flex-direction:column}
button{font:inherit;cursor:pointer;border:0;border-radius:4px;padding:9px 14px;background:var(--tx);color:var(--pn);font-weight:600}
button.o,button.ok{background:var(--green);color:#fff}button.bad{background:var(--red);color:#fff}button.w{background:var(--tile);color:var(--tx);border:1px solid var(--bd)}
input,select{font:inherit;padding:9px;border:1px solid var(--bd);border-radius:4px;background:var(--pn);color:var(--tx);min-width:0}
:focus-visible{outline:3px solid var(--bt);outline-offset:1px}
#app{position:relative}header{background:var(--pn);border-bottom:1px solid var(--bd);display:flex;gap:6px;align-items:center;padding:6px 10px}
header input{flex:1;border:0;background:transparent;font-size:16px}.ib{background:transparent;color:var(--tx);padding:6px 9px;border:0;font-weight:700}
.dot{width:10px;height:10px;border-radius:50%;background:#2c2}.off{background:#e33}
#login{margin:auto;text-align:center;width:min(340px,92vw);background:var(--pn);padding:24px;border-radius:8px}
#users button{display:block;width:100%;margin:6px 0;padding:14px;font-size:17px}#pin{font-size:30px;letter-spacing:14px;text-align:center;width:100%}
main{flex:1;display:grid;grid-template-columns:1fr 400px;min-height:0}.left{display:flex;flex-direction:column;min-height:0;background:var(--pn)}
.th,.row{display:grid;grid-template-columns:1fr 100px 90px 100px;gap:6px;padding:8px 10px;align-items:center}
.th{font-weight:700;border-bottom:1px solid var(--bd)}.th span:nth-child(n+2),.row>div:nth-child(n+3),.row>b{text-align:right}
#lines{flex:1;overflow:auto}.row{border-bottom:1px solid var(--bd);cursor:pointer}.row small{display:block;opacity:.7}
.row.sel{background:var(--blue);color:#fff}.row .q{display:flex;gap:4px;align-items:center;justify-content:flex-end}.row .q button{padding:1px 8px;background:#0003;color:inherit}
.empty{padding:30px;text-align:center;color:var(--mu)}.tot{border-top:1px solid var(--bd);padding:10px 16px}
.tot div{display:flex;justify-content:flex-end;gap:40px;margin:3px 0}.tot span:last-child{min-width:110px;text-align:right}.big{font-size:28px;font-weight:800}
.keys{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,minmax(78px,auto)) 1fr repeat(3,minmax(78px,auto));gap:5px;padding:5px;border-left:1px solid var(--bd);overflow:auto}
.k{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:var(--tile);color:var(--tx);border:1px solid var(--bd);font-weight:400;font-size:13px;padding:6px}
.k i{position:absolute;top:4px;left:6px;font-style:normal;font-size:11px;opacity:.7}.k.red{background:var(--red);color:#fff;border-color:var(--red)}
.k.m{grid-column:span 2;border-bottom:4px solid var(--blue)}.k.gr{border-bottom-color:var(--green)}.k.s2{grid-column:span 2}
.k.pay{grid-column:span 2;background:var(--green);color:#fff;border-color:var(--green)}.k.pay b{font-size:26px}
.badge{position:absolute;top:2px;right:4px;background:var(--red);color:#fff;border-radius:10px;padding:0 6px;font-size:11px}
.logo{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:34px;font-weight:800;letter-spacing:3px;color:var(--o);opacity:1;min-height:20px}.logo small{font-size:14px;letter-spacing:2px}
#plist{position:absolute;left:8px;top:54px;width:min(720px,calc(100% - 16px));max-height:60vh;overflow:auto;background:var(--pn);border:1px solid var(--bd);box-shadow:0 8px 24px #0006;z-index:5;padding:6px}
.p{display:flex;justify-content:space-between;gap:8px;background:var(--tile);border:1px solid var(--bd);border-radius:4px;padding:10px;margin-bottom:5px;width:100%;color:var(--tx);text-align:left;font-weight:400}
.p:hover{border-color:var(--blue)}.p small{color:var(--mu);display:block}.low{color:#e53}.mbar{height:12px;background:var(--bd);border-radius:6px;overflow:hidden}.mbar i{display:block;height:100%;background:var(--green)}.mbar i.w{background:#e9a100}.mbar i.r{background:var(--red)}.mc{background:var(--pn);border:1px solid var(--bd);padding:10px;min-width:220px;flex:1}.sg{color:var(--gt)!important;font-weight:700}.sb{color:var(--bt)!important;font-weight:700}.sz{color:var(--rt)!important;font-weight:700}
#nav{padding:8px 10px;background:var(--pn);border-bottom:1px solid var(--bd);display:flex;gap:8px}.pane{overflow:auto;padding:10px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;margin-bottom:10px}.card{background:var(--tile);color:var(--tx);border:1px solid var(--bd);padding:22px 8px;font-size:15px}
table{border-collapse:collapse;width:100%;background:var(--pn)}td,th{padding:7px;border-bottom:1px solid var(--bd);text-align:left}
.f{display:grid;grid-template-columns:1fr 1fr;gap:6px}.f input{width:100%}
dialog{border:0;border-radius:8px;padding:20px;width:min(380px,94vw);background:var(--pn);color:var(--tx)}dialog::backdrop{background:#0008}
#rc{display:none}
@media print{body>*:not(#rc){display:none!important}#rc{display:block;color:#000;background:#fff}#rc hr{border:0;border-top:1px dashed #000}#rc .r{display:flex;justify-content:space-between}}
@media(max-width:800px){main{grid-template-columns:1fr;grid-template-rows:1fr 48vh}.keys{border-left:0;border-top:2px solid var(--bd);grid-template-rows:none;grid-auto-rows:minmax(64px,auto)}.th,.row{grid-template-columns:1fr 92px 70px 80px}.logo,.hide{display:none}}
.keys{display:flex!important;flex-direction:column}.kg{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:minmax(76px,auto);gap:5px}
.k.bl{border-bottom:4px solid var(--blue)}.k.gr{border-bottom:4px solid var(--green)}.k.s1{grid-column:span 1}.k.s4{grid-column:span 4}
#adm{display:flex;flex:1;flex-direction:column;min-height:0}.ah{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--pn);border-bottom:1px solid var(--bd);font-size:18px}.ah span{flex:1}
.ab{flex:1;display:flex;min-height:0}#sb{width:230px;background:var(--pn);border-right:1px solid var(--bd);overflow:auto}
#sb button{display:flex;gap:14px;align-items:center;width:100%;background:transparent;color:var(--tx);border-radius:0;padding:13px 16px;font-weight:400;text-align:left}#sb button.on{background:var(--blue);color:#fff}
.tb{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.tbb{background:transparent;color:var(--tx);display:flex;flex-direction:column;align-items:center;gap:2px;font-weight:400;font-size:13px;min-width:84px}
.split{display:flex;gap:8px;height:calc(100% - 90px);min-height:300px}.tree{width:220px;background:var(--pn);border:1px solid var(--bd);overflow:auto;padding:6px}
.tree button{display:block;width:100%;text-align:left;background:transparent;color:var(--tx);font-weight:400;padding:7px}.tree button.on{background:var(--blue);color:#fff}
.tbl{flex:1;overflow:auto;background:var(--pn);border:1px solid var(--bd)}.sr{display:flex;gap:10px;align-items:center;padding:6px;position:sticky;top:0;background:var(--pn)}.sr input{flex:1}tr.sel td{background:var(--blue);color:#fff}
.dg{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.cd{background:var(--pn);border:1px solid var(--bd);padding:12px}.cd h2{margin:0 0 8px;font-weight:300;font-size:22px}.c2{grid-column:span 2}.hug{font-size:64px;font-weight:800;line-height:1.1}
.bars{display:flex;align-items:flex-end;gap:2px;height:150px}.bar{flex:1;color:#fff;font-size:10px;text-align:center;min-width:0;overflow:hidden}.bl{display:flex;gap:2px;font-size:11px}.bl span{flex:1;text-align:center}
.ke{display:flex;gap:6px;align-items:center;margin:4px 0}.ke b{flex:1;min-width:120px}
#ov{position:fixed;inset:0;background:#0006;z-index:20}#sp{position:fixed;top:0;right:0;bottom:0;width:min(330px,92vw);background:var(--pn);z-index:21;overflow:auto;padding:14px;box-shadow:-6px 0 24px #0006}
.sh{display:flex;justify-content:space-between;font-size:20px;margin-bottom:8px}.si{display:flex;gap:12px;align-items:center;width:100%;background:transparent;color:var(--tx);font-weight:400;text-align:left;padding:12px 6px}
.sf{display:flex;justify-content:space-around;border-top:1px solid var(--bd);margin-top:10px;padding-top:10px}.dt{text-align:center;font-weight:700;color:var(--mu)}
@media(max-width:800px){.ab{flex-direction:column}#sb{width:100%;display:flex;overflow-x:auto;border-right:0}#sb button{width:auto;white-space:nowrap}.dg{grid-template-columns:1fr}.c2,.c3{grid-column:auto}.split{flex-direction:column;height:auto}.tree{width:100%;max-height:120px}}
@page{margin:0}
#dlg{width:min(560px,96vw);padding:24px}#dlg h3{font-size:22px}#dlg .big{font-size:44px;text-align:center;margin:6px 0 12px}
.pmb{font-size:19px;padding:26px 10px;font-weight:700}#dlg #ok,#dlg .bad{padding:16px 22px;font-size:17px}
.pm{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:10px 0}.pmb{background:var(--tile);color:var(--tx);border:2px solid var(--bd);padding:14px}.pmb.on{background:var(--green);color:#fff;border-color:var(--green)}
#toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#222;color:#fff;padding:12px 18px;border-radius:6px;z-index:60;max-width:90vw;box-shadow:0 4px 16px #0008}#toast.err{background:var(--red)}
#offb{background:#f59e0b;color:#111;text-align:center;padding:4px;font-weight:600;font-size:13px}
.rcp{display:grid;grid-template-columns:minmax(260px,1fr) 340px;gap:14px}.rcp label{display:block;margin:6px 0}.rcp select,.rcp input:not([type=checkbox]),.rcp textarea{width:100%}
.pv{background:#fff;color:#000;padding:10px;border:1px solid var(--bd);overflow:auto;max-height:82vh}
.rcw{margin:0 auto;padding:2mm 1mm;color:#000;background:#fff;line-height:1.35}.rcw .r{display:flex;justify-content:space-between;gap:6px}.rcw .tt{font-size:1.4em;font-weight:800}
.rcw .nm{font-size:1.25em;letter-spacing:1px}.rcw .bn{font-size:1.2em;font-weight:700;margin:4px 0}.rcw .ln{border-top:1px dashed #000;margin:4px 0}.rcw .dl{border-top:3px double #000;margin:4px 0}
.rcw .ct{text-align:center}.rcw img{filter:grayscale(1) contrast(1.4)}.pb{page-break-after:always}
@media(max-width:800px){.rcp{grid-template-columns:1fr}}
.acts{display:flex;flex-wrap:wrap;gap:8px;align-items:center}td .acts{min-width:210px}
header.adm #q,header.adm>.ib:not([data-ic=gear]):not([onclick^=theme]){display:none}header.adm .dot{margin-left:auto}
#invv{overflow-x:auto;-webkit-overflow-scrolling:touch}
.lbl{box-sizing:border-box;padding:1.5mm 2mm;text-align:center;overflow:hidden;page-break-after:always;color:#000;background:#fff;font-family:Arial,sans-serif}.lbl:last-child{page-break-after:auto}.lbl .ln1{font-size:9px;font-weight:700;line-height:1.1;max-height:2.4em;overflow:hidden}.lbl .lc{font-size:8px}.lbl .lp{font-size:14px}
@media(max-width:800px){dialog{width:94vw;max-width:94vw}#invv table{font-size:13px}.acts button{flex:1 1 auto}header .ib{padding:6px}}
.ccg{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ccg label{display:flex;flex-direction:column;font-size:13px}#dcc,#dab{max-height:92vh;overflow:auto}@media(max-width:800px){.ccg{grid-template-columns:1fr}}
.acl{position:absolute;z-index:999;background:Canvas;color:CanvasText;border:1px solid #888;border-radius:6px;max-height:240px;overflow:auto;box-shadow:0 6px 16px #0005;text-align:left}.acl div{padding:8px 10px;cursor:pointer;border-bottom:1px solid #8883;line-height:1.25}.acl div:hover,.acl div.on{background:#0ea5e9;color:#fff}.acl small{opacity:.8}

/* SPOS motion: ease-out fuerte, <300ms, solo transform/opacity/color (guía emil-design-eng) */
:root{--font:Inter,system-ui,"Segoe UI",Roboto,sans-serif;--ease-out:cubic-bezier(.23,1,.32,1)}body{font-family:var(--font);-webkit-font-smoothing:antialiased}
svg{stroke-linecap:round;stroke-linejoin:round}
button,.card,.ib{transition:transform 160ms var(--ease-out),background-color 160ms ease,border-color 160ms ease,box-shadow 160ms ease,opacity 160ms ease}
button:active,.card:active{transform:scale(.97)}
@media(hover:hover) and (pointer:fine){.card:hover{box-shadow:0 2px 10px rgba(0,0,0,.12)}}
#toast,dialog[open]{opacity:1;transform:none;transition:opacity 180ms var(--ease-out),transform 180ms var(--ease-out)}
@starting-style{#toast:not([hidden]){opacity:0;transform:translateY(8px)}dialog[open]{opacity:0;transform:scale(.97)}}

.c3{grid-column:1/-1}.tvh{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;margin-bottom:8px}.tvh h2{margin:0}
.tvp button{padding:6px 12px;margin-left:4px}.tvw{background:linear-gradient(90deg,#F97316,#fb923c);color:#fff;border-radius:8px;padding:12px 14px;margin:6px 0 10px;font-size:17px;font-weight:700;display:flex;gap:10px;align-items:center}.tvw small{display:block;font-weight:500;font-size:13px;opacity:.95}
.tvt{width:100%}.tvt td,.tvt th{padding:8px}.tvt .rk{width:34px;font-weight:800;text-align:center}.tvb{height:8px;background:var(--bd);border-radius:4px;min-width:90px}.tvb i{display:block;height:100%;background:var(--o);border-radius:4px}.tvs{margin:2px 0 10px;color:var(--mu)}.tvt tr.off td{opacity:.6}.tvt tr.top td{font-weight:700;background:rgba(249,115,22,.10)}
#ins{position:fixed;left:50%;bottom:14px;transform:translateX(-50%);z-index:9999;width:min(560px,94vw);background:var(--pn);color:var(--tx);border:1px solid var(--bd);border-left:5px solid var(--o);border-radius:12px;box-shadow:0 8px 30px rgba(0,0,0,.28);padding:12px;display:flex;gap:12px;align-items:center}
#ins[hidden]{display:none}#ins img{width:52px;height:52px;border-radius:10px;background:#fff;flex:none}#ins div{flex:1;min-width:0}#ins b{display:block}#ins small{color:var(--mu);display:block;line-height:1.3}#ins .bt{display:flex;flex-direction:column;gap:6px}
.dsr{background:var(--pn);border:1px solid var(--bd);border-radius:8px;padding:12px;margin-bottom:14px}.dsr h3{margin:0 0 4px}.dsr .f2{display:flex;gap:8px;flex-wrap:wrap}.dsr input{flex:1;min-width:220px;font-size:16px}.dsr small{color:var(--mu)}.tg{display:inline-block;padding:2px 8px;border-radius:10px;font-size:12px;font-weight:700;color:#fff;background:#00799b}.tg.q{background:#8dc63f}
.brand{font-weight:800;letter-spacing:.6px;color:var(--o);margin:0 8px 0 4px;user-select:none;display:inline-flex;align-items:center}.hd-logo{height:34px;width:34px;border-radius:6px;background:#fff;display:block}.lgn-logo{width:150px;max-width:60%;height:auto;border-radius:12px;background:#fff;display:block;margin:0 auto 10px}.kg-logo{width:84px;height:84px;border-radius:10px;background:#fff;opacity:.9;margin-bottom:4px}
header.adm{display:none}.ah{position:sticky;top:0;z-index:5}#invv{padding-top:4px}
@media(prefers-reduced-motion:reduce){button:active,.card:active{transform:none}@starting-style{#toast:not([hidden]){transform:none}dialog[open]{transform:none}}}
::placeholder{color:var(--mu);opacity:1}small{color:var(--mu)}
.sk i{display:block;height:14px;margin:14px 12px;border-radius:6px;background:var(--bd);opacity:.35;animation:skp 800ms ease-in-out infinite alternate}.sk i:nth-child(1){width:55%}.sk i:nth-child(2){width:90%}.sk i:nth-child(3){width:75%}
@keyframes skp{to{opacity:.7}}@media(prefers-reduced-motion:reduce){.sk i{animation:none}}

.ist{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px}
.ic{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;background:var(--tile);color:var(--tx);border:1px solid var(--bd);border-top:6px solid var(--bd);font-weight:400}
.ic b{font-size:28px;line-height:1.1}.ic span{font-weight:700}.ic.sz{border-top-color:var(--red)}.ic.sz b{color:var(--rt)}.ic.sb{border-top-color:var(--blue)}.ic.sb b{color:var(--bt)}.ic.sg{border-top-color:var(--green)}.ic.sg b{color:var(--gt)}.ic.on{outline:3px solid var(--tx);outline-offset:-3px;background:var(--bg)}
.pc{display:flex;justify-content:space-between;gap:10px;background:var(--pn);border:1px solid var(--bd);border-radius:8px;padding:10px;margin-bottom:6px}.pci{display:flex;flex-direction:column;gap:2px;min-width:0}.pci span{font-size:12px;font-weight:700}.pcs{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.chip{display:inline-block;min-width:38px;text-align:center;border-radius:12px;padding:2px 10px;font-weight:800;color:#fff!important;font-size:16px}.chip.sz{background:var(--red)}.chip.sb{background:var(--blue)}.chip.sg{background:var(--green)}
@media(min-width:801px){#inv_c{display:none}}
@media(min-width:801px){.mobupd{display:none!important}}
@media(max-width:800px){.mobupd{display:inline-flex!important;font-weight:800;color:var(--o)}#inv_t{display:none}.ist{grid-template-columns:repeat(2,1fr)}#invv{padding:10px}
 header{flex-wrap:wrap;gap:4px}header #q{order:20;flex:1 1 100%;min-width:100%}header .dot{margin-left:auto}#plist{top:104px}
 .k i{display:none}.th{font-size:13px}.tot{padding:8px 12px}.pane table{font-size:13px}.pane{overflow-x:auto}}
.pcs .acts{flex-wrap:nowrap}.pcs .acts button{flex:0 0 auto;padding:6px 10px}

#scn{position:relative;background:#000;height:34vh;max-height:300px;flex:none}#scn video{width:100%;height:100%;object-fit:cover}#scn[hidden]{display:none}
#scm{position:absolute;left:0;right:0;bottom:0;padding:8px;background:#000b;color:#fff;font-weight:700;text-align:center}#scn button{position:absolute;top:8px;right:8px;min-height:40px}
@media(max-width:800px){.scning .keys{display:none!important}.scning main{grid-template-rows:1fr}#scn{height:30vh}}
.scl{position:absolute;left:10%;right:10%;top:50%;height:2px;background:#ff3b3b;box-shadow:0 0 8px #f33}
@media(max-width:800px){.cd{min-width:0;overflow:hidden}.cd svg,.cd img,.cd canvas{max-width:100%;height:auto}
 #invv table{display:block;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
 #invv input:not([type=checkbox]):not([type=radio]),#invv select,#invv textarea{width:100%;max-width:none;min-height:44px;font-size:16px}
 #invv .f,#invv .cc,#invv .ccg{display:grid;grid-template-columns:1fr!important;gap:8px;max-width:none!important}
 #invv button{min-height:42px}#invv .acts button{flex:1 1 auto}}

#updb{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:9999;width:min(560px,94vw);background:var(--pn);color:var(--tx);border:1px solid var(--bd);border-left:6px solid var(--o);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;box-shadow:0 8px 24px #0006}

/* ---- Movil (solo <=800px; la version de PC no cambia) ---- */
#mqt,#sbt,.btb{display:none}

@media(max-width:800px){
 main{grid-template-rows:1fr auto}
 .keys{display:grid!important;grid-template-columns:repeat(12,1fr);gap:6px;padding:6px;grid-auto-rows:minmax(62px,auto);overflow:auto;max-height:56vh}
 .keys .kg{display:contents}
 .keys .k{grid-column:span 4!important;order:20}
 .keys .k.q{grid-column:span 3!important;order:1;min-height:60px}
 #mqt{display:block;order:10;grid-column:1/-1;min-height:40px;background:transparent;border:0;color:var(--mu);font-weight:700}
 body:not(.acc) .keys .k:not(.q){display:none}
 #sbt{display:block;position:sticky;top:0;z-index:6;width:100%;text-align:left;font-weight:700;min-height:48px;border-radius:0;border:0;border-bottom:1px solid var(--bd)}
 #sb{display:none!important}
 #sb.open{display:grid!important;grid-template-columns:1fr 1fr;gap:6px;padding:8px;overflow:visible;background:var(--pn);border-bottom:2px solid var(--bd)}
 #sb.open button{width:100%;white-space:normal;text-align:left;min-height:46px}
 #invv table.rt{display:block;overflow:visible;border:0}#invv table.rt tbody{display:block}#invv table.rt .rth{display:none}
 #invv table.rt tr{display:block;background:var(--pn);border:1px solid var(--bd);border-radius:8px;margin-bottom:8px;padding:6px 10px}
 #invv table.rt td{display:flex;justify-content:space-between;align-items:center;gap:10px;border:0;padding:5px 0;text-align:right;min-width:0}
 #invv table.rt td[data-l]::before{content:attr(data-l);font-weight:700;color:var(--mu);text-align:left;flex:0 0 auto}
 #invv table.rt td input{width:56%!important;min-width:0}#invv table.rt td .acts{min-width:0}
}

/* =====================================================================
   SPOS · Diseño Celeste (solo piel: color, tipografía, iconos, ventanas, movimiento)
   No cambia el orden ni la estructura. Va al final para sobrescribir lo anterior.
   Celeste = identidad y foco · Azul marino = tinta y barras · Naranja = SOLO marca y botón Pago
   ===================================================================== */
:root{
 --font:Manrope,Inter,system-ui,"Segoe UI",Roboto,sans-serif;
 --bg:#EAF4FB;--pn:#fff;--tx:#0B2542;--mu:#4F677D;--bd:#CBDEEC;--tile:#fff;
 --sky:#1FA9EA;--sky-d:#0B7BBF;--sky-l:#E3F4FD;--sky-a:rgba(31,169,234,.22);--sel:#DCF0FC;--kb:#FFF1CC;--kbd:#F29A00;
 --ink:#0B2542;--ink2:#123760;--ti:#123760;--bc0:#0b7bbf;--bc1:#0a8aa8;--bc2:#4d8f1f;--bc3:#5f9a1a;--bc4:#3f7d20;--bc5:#b25aa6;--bc6:#2f7fb5;--bc7:#d6407f;--bc8:#e2574c;
 --blue:#0B7BBF;--bt:#0A6AA6;--green:#1B8A3C;--gt:#14702F;--red:#D03A3A;--rt:#B72C2C;--o:#F26A0F;
 --r-s:8px;--r-m:12px;--r-l:16px;--r-xl:22px;
 --sh1:0 1px 2px rgba(11,37,66,.06),0 4px 14px -6px rgba(11,37,66,.14);
 --sh2:0 2px 4px rgba(11,37,66,.08),0 14px 32px -12px rgba(11,37,66,.28);
 --ease-out:cubic-bezier(.22,1,.36,1)}
[data-theme=dark]{
 --bg:#06172A;--pn:#0E2340;--tx:#E8F4FD;--mu:#9DB8CE;--bd:#244868;--tile:#133052;
 --sky:#3DBBF5;--sky-d:#1B9BE0;--sky-l:#12385C;--sky-a:rgba(61,187,245,.28);--sel:#12395F;--kb:#4A3A10;--kbd:#FFB020;
 --blue:#1B9BE0;--bt:#62CFFC;--gt:#6FE08A;--rt:#FF8F8F;--green:#2BA24D;--red:#E24C4C;--o:#FF8A3D;
 --ti:#E3F1FC;--bc0:#3dbbf5;--bc1:#22d3ee;--bc2:#a3e04f;--bc3:#8fd14f;--bc4:#6fbf4a;--bc5:#f0a8e0;--bc6:#7cc0ee;--bc7:#ff7eb3;--bc8:#ff8f8f;
 --sh1:0 1px 2px rgba(0,0,0,.4),0 4px 14px -6px rgba(0,0,0,.5);--sh2:0 2px 4px rgba(0,0,0,.5),0 14px 32px -12px rgba(0,0,0,.7)}
html{background:var(--bg)}
body{font-size:15px;letter-spacing:-.003em;font-variant-numeric:tabular-nums}
body,#app{background:radial-gradient(1200px 500px at 85% -10%,rgba(31,169,234,.14),transparent 60%),var(--bg)}
::selection{background:var(--sky-a)}
:focus-visible{outline:3px solid var(--sky);outline-offset:2px;border-radius:var(--r-s)}

/* ---- Botones ---- */
button{border-radius:var(--r-m);font-weight:700;letter-spacing:0;background:linear-gradient(180deg,#0A78BD,#0A6AA6);color:#fff;
 box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 1px 2px rgba(11,37,66,.25),0 6px 14px -8px rgba(11,123,191,.7)}
button.o,button.ok{background:linear-gradient(180deg,#178036,#14702F);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(11,37,66,.25),0 6px 14px -8px rgba(27,138,60,.7)}
button.bad{background:linear-gradient(180deg,#D03A3A,#B72C2C);box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 1px 2px rgba(11,37,66,.25),0 6px 14px -8px rgba(199,52,52,.7)}
button.w,.ib{background:var(--tile);color:var(--tx);border:1px solid var(--bd);box-shadow:var(--sh1)}
button.w:hover,.card:hover{border-color:var(--sky)}
button:disabled{opacity:.5;box-shadow:none}
button:active,.card:active{transform:scale(.96)}
@media(hover:hover) and (pointer:fine){button:not(.k):not(.ib):not(.w):hover{filter:brightness(1.06)}.k:hover,.card:hover{transform:translateY(-1px);box-shadow:var(--sh2)}}

/* ---- Campos ---- */
input,select,textarea{border:1.5px solid var(--bd);border-radius:var(--r-m);background:var(--pn);color:var(--tx);padding:10px 12px;transition:border-color 140ms ease,box-shadow 140ms ease}
textarea{font:inherit;min-width:0}
input:focus,select:focus,textarea:focus{border-color:var(--sky);box-shadow:0 0 0 4px var(--sky-a);outline:none}
input[type=checkbox],input[type=radio]{accent-color:var(--sky-d)}

/* ---- Cabecera ---- */
header{background:linear-gradient(180deg,#0E2F57,#0B2542);border-bottom:0;padding:8px 12px;gap:8px;box-shadow:0 6px 18px -10px rgba(11,37,66,.7);position:relative;z-index:4}
header .ib{background:rgba(255,255,255,.08);color:#D6EEFC;border:1px solid rgba(255,255,255,.14);box-shadow:none;border-radius:var(--r-m);min-width:38px;min-height:38px;display:inline-flex;align-items:center;justify-content:center}
header .ib:hover{background:rgba(31,169,234,.28);border-color:rgba(61,187,245,.6)}
header .ib svg{width:22px;height:22px}
header #q{background:#fff;color:#0B2542;border:1.5px solid transparent;border-radius:var(--r-l);padding:11px 16px 11px 42px;font-size:16px;font-weight:500;
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231FA9EA' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='M15.5 15.5L21 21'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:13px 50%;background-size:20px}
[data-theme=dark] header #q{background-color:#0A1D35;color:#E8F4FD}
header #q::placeholder{color:#5D7790}
header #q:focus{border-color:var(--sky);box-shadow:0 0 0 4px rgba(61,187,245,.35)}
.hd-logo{border-radius:10px;box-shadow:0 0 0 2px rgba(255,255,255,.18)}
.dot{width:11px;height:11px;background:#2FD36B;box-shadow:0 0 0 3px rgba(47,211,107,.28)}.off{background:#FF5A5A;box-shadow:0 0 0 3px rgba(255,90,90,.28)}
#me{color:#CFE6F7;font-weight:600}
#offb{background:#FFB020;border-radius:0 0 var(--r-m) var(--r-m)}

/* ---- Acceso ---- */
body:has(#login:not([style*="none"])){background:radial-gradient(900px 420px at 50% -8%,rgba(31,169,234,.35),transparent 65%),linear-gradient(180deg,#0E2F57,#0B2542 55%,#0A1E38)}
#login{border-radius:var(--r-xl);padding:28px 24px;box-shadow:0 24px 60px -20px rgba(0,0,0,.6);border:1px solid rgba(31,169,234,.25);animation:lgIn 360ms var(--ease-out) both}
@keyframes lgIn{from{opacity:0;transform:translateY(10px) scale(.985)}}
.lgn-logo{border-radius:var(--r-l);box-shadow:var(--sh1)}
#login h2{letter-spacing:.04em;font-weight:800}
#users button{background:var(--sky-l);color:var(--tx);border:1.5px solid var(--bd);box-shadow:none;border-radius:var(--r-l);text-align:left;padding:14px 16px;font-weight:700}
#users button:hover{border-color:var(--sky);background:var(--sel)}
#pin{border-radius:var(--r-l);font-weight:800;color:var(--sky-d)}

/* ---- Caja: tabla de venta ---- */
.left{background:transparent;padding:10px 0 10px 10px}
.th{background:var(--sky-l);color:var(--bt);border:1px solid var(--bd);border-bottom:0;border-radius:var(--r-l) var(--r-l) 0 0;font-size:13px;font-weight:700}
#lines{background:var(--pn);border:1px solid var(--bd);border-radius:0 0 var(--r-l) var(--r-l)}
.row{border-bottom:1px solid color-mix(in srgb,var(--bd) 60%,transparent);padding:10px 12px}
.row b,.row>div:nth-child(n+3){font-weight:700}
.row.sel{background:var(--sel);color:var(--tx);box-shadow:inset 6px 0 0 var(--sky),inset 0 0 0 2px var(--sky)}
#plist .p.kb{background:var(--kb);border-color:var(--kbd);color:var(--tx);box-shadow:0 0 0 3px color-mix(in srgb,var(--kbd) 28%,transparent)}
.row .q button{background:var(--sky-l);color:var(--sky-d);border:1px solid var(--bd);box-shadow:none;border-radius:999px;padding:1px 10px;font-weight:800}
.row.sel .q button{background:var(--pn)}
#invv .px-imgt{display:flex;align-items:center;gap:12px;width:100%;margin:10px 0 0;padding:10px 14px;text-align:left;background:var(--tile);color:var(--tx);border:1px solid var(--bd);box-shadow:var(--sh1);border-radius:var(--r-m);font-weight:700;font-size:14px}
#invv .px-imgt svg{font-size:26px;color:var(--ti);flex:none}#invv .px-imgt span{flex:1;min-width:0}#invv .px-imgt small{display:block;font-weight:500;opacity:.65;font-size:12px}
.px-sw{flex:none;position:relative;width:44px;height:26px;border-radius:999px;background:#b9c7d3;transition:background .15s}.px-sw::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0004;transition:transform .15s}
#invv .px-imgt.on{border-color:var(--sky);background:var(--sel)}#invv .px-imgt.on .px-sw{background:var(--green)}#invv .px-imgt.on .px-sw::after{transform:translateX(18px)}
@media(min-width:900px){#invv .px-imgt{max-width:760px}}
.row .rt,#plist .rt{display:flex;align-items:center;gap:10px;min-width:0}.row .rt>span,#plist .rt>span{min-width:0}.row .rt small,#plist .rt small{display:block}
.vth{flex:none;width:56px;height:56px;border-radius:10px;object-fit:cover;background:var(--sky-l);border:1px solid var(--bd);cursor:zoom-in}.vth.ph{cursor:default;background:var(--sky-l) no-repeat center/55% url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2390b4cc' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m12 3 8 4.5v9L12 21l-8-4.5v-9z'/%3E%3Cpath d='M12 12 4 7.5M12 12l8-4.5M12 12v9'/%3E%3C/svg%3E")}
@media(max-width:800px){.vth{width:40px;height:40px;border-radius:8px}.row .rt,#plist .rt{gap:7px}.row:has(.vth){grid-template-columns:minmax(0,1fr) 78px 54px 62px;gap:4px;padding-left:8px;padding-right:8px}.row:has(.vth) .rt b{font-size:13.5px;line-height:1.2;overflow-wrap:break-word;hyphens:auto}.row:has(.vth) .rt small{font-size:11.5px}.row:has(.vth)>div:nth-child(n+3),.row:has(.vth)>b{font-size:13px}.row:has(.vth) .q{gap:2px}.row:has(.vth) .q button{padding:1px 7px}}
.empty{margin:18px;padding:34px 18px;border:2px dashed color-mix(in srgb,var(--sky) 55%,transparent);border-radius:var(--r-xl);background:var(--sky-l);color:var(--bt);font-weight:600}
.empty::before{content:"";display:block;width:56px;height:56px;margin:0 auto 10px;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%231FA9EA' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 15V9a3 3 0 013-3h6M33 6h6a3 3 0 013 3v6M42 33v6a3 3 0 01-3 3h-6M15 42H9a3 3 0 01-3-3v-6'/%3E%3Cpath d='M14 17v14M19 17v14M25 17v14M30 17v14M34 17v14'/%3E%3C/svg%3E")}
.tot{border:0;padding:10px 12px 0 0;margin-top:2px}
.tot div{gap:24px}.tot span:first-child{color:var(--mu);font-weight:600}.tot span:last-child{font-weight:700}
.tot .big{margin-top:8px;padding:14px 18px;border-radius:var(--r-l);background:linear-gradient(135deg,#0E2F57,#0B2542);color:#fff;box-shadow:var(--sh2),inset 0 0 0 1px rgba(61,187,245,.35);align-items:baseline;justify-content:space-between;font-size:30px;font-weight:800}
.tot .big span:first-child{color:#8FD6F8;font-size:15px;letter-spacing:.02em}
.tot .big span:last-child{color:#fff;text-shadow:0 0 22px rgba(61,187,245,.55)}

/* ---- Teclas ---- */
.keys{border-left:0;padding:10px;gap:8px;background:transparent}
.kg{gap:8px}
.k{border:1px solid var(--bd);border-radius:var(--r-l);background:var(--tile);color:var(--tx);font-weight:700;font-size:13px;box-shadow:var(--sh1);gap:6px}
.k svg{box-sizing:content-box;width:24px;height:24px;padding:7px;border-radius:var(--r-m);color:var(--sky-d);background:color-mix(in srgb,currentColor 13%,transparent);stroke-width:2}
.k i{color:var(--mu);font-weight:700;opacity:1}
.k[onclick^="askDisc"] svg,.k[onclick^="hold"] svg{color:var(--o)}
.k[onclick^="openDrawer"] svg,.k[onclick^="cajaStart"] svg{color:var(--green)}
.k[onclick^="more"] svg{color:var(--mu)}
.k.bl{border-bottom:4px solid var(--sky)}.k.gr{border-bottom:4px solid var(--green)}
.k.gr:not(:has(svg))::before{content:"";width:38px;height:38px;border-radius:var(--r-m);background:color-mix(in srgb,var(--green) 14%,transparent) no-repeat center/24px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B8A3C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='6' width='19' height='12' rx='2.5'/%3E%3Ccircle cx='12' cy='12' r='2.6'/%3E%3Cpath d='M6 9.5v.01M18 14.5v.01'/%3E%3C/svg%3E")}
.k.red{background:color-mix(in srgb,var(--red) 11%,var(--tile));color:var(--rt);border-color:color-mix(in srgb,var(--red) 35%,var(--bd))}
.k.red svg{color:var(--red)}
.k.red[onclick^="voidOrder"]{background:linear-gradient(180deg,#D03A3A,#B72C2C);color:#fff;border-color:#C73434;box-shadow:inset 0 1px 0 rgba(255,255,255,.22),var(--sh1)}
.k.red[onclick^="voidOrder"] svg{color:#fff}
.k.pay{background:linear-gradient(180deg,#D44A07,#B33A0A);color:#fff;border-color:#F26A0F;box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 12px 24px -12px rgba(242,106,15,.9);font-size:15px}
.k.pay b{font-size:26px;letter-spacing:.01em;font-weight:800}
.k.pay:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 16px 30px -12px rgba(242,106,15,1)}
.badge{background:var(--red);box-shadow:0 0 0 2px var(--pn);font-weight:800}
.logo{color:var(--sky-d)}.kg-logo{border-radius:var(--r-l);box-shadow:var(--sh1)}

/* ---- Lista de búsqueda y autocompletar ---- */
#plist{border-radius:var(--r-l);border:1px solid var(--bd);box-shadow:var(--sh2);padding:8px;background:var(--pn)}
.p{background:var(--tile);border-radius:var(--r-m);border:1px solid var(--bd);box-shadow:none}
.p:hover,.p:focus-visible{border-color:var(--sky);background:var(--sky-l);transform:none}
.low{color:var(--rt);font-weight:700}
.acl{border-radius:var(--r-m);box-shadow:var(--sh2);border:1px solid var(--bd)}.acl div:hover,.acl div.on{background:var(--blue);color:#fff}

/* ---- Administración ---- */
.ah{background:linear-gradient(180deg,#0E2F57,#0B2542);color:#EAF6FF;border-bottom:0;font-weight:700;box-shadow:0 6px 18px -10px rgba(11,37,66,.7)}
.ah .ib{background:rgba(255,255,255,.08);color:#D6EEFC;border-color:rgba(255,255,255,.16)}
#sb{background:linear-gradient(180deg,#0E2F57,#0A1E38);border-right:0;padding:10px 8px}
#sb button{background:transparent;color:#C5DDEE;border:0;box-shadow:none;border-radius:var(--r-m);padding:12px 14px;font-weight:600;margin-bottom:2px}
#sb button svg{width:22px;height:22px;color:#6FC6F2}
#sb button:hover{background:rgba(255,255,255,.08);color:#fff}
#sb button.on{background:linear-gradient(135deg,#0A78BD,#0A5C96);color:#fff;box-shadow:0 8px 18px -8px rgba(31,169,234,.9)}
#sb button.on svg{color:#fff}
#sbt{background:linear-gradient(180deg,#0E2F57,#0B2542);color:#fff;border-radius:0;box-shadow:none}
.pane{padding:14px}
.pane h2,.pane h3{letter-spacing:-.01em}
.card{border:1px solid var(--bd);border-radius:var(--r-l);box-shadow:var(--sh1);font-weight:700;color:var(--tx);background:var(--tile)}
.cd,.mc,.dsr,.pc,.tree,.tbl{border:1px solid var(--bd);border-radius:var(--r-l);box-shadow:var(--sh1);background:var(--pn)}
.cd h2{font-weight:700;font-size:18px;color:var(--tx)}
.hug{color:var(--sky-d);letter-spacing:-.03em}
table{background:var(--pn);border-radius:var(--r-m)}
th{color:var(--bt);font-weight:700;font-size:13px;background:var(--sky-l)}
td,th{border-bottom:1px solid color-mix(in srgb,var(--bd) 70%,transparent)}
tbody tr:hover td{background:color-mix(in srgb,var(--sky-l) 60%,transparent)}
tr.sel td{background:var(--sel);color:var(--tx)}
.tree button{border-radius:var(--r-m)}.tree button.on{background:var(--sel);color:var(--bt);font-weight:700;box-shadow:inset 3px 0 0 var(--sky)}
.sr{background:var(--pn)}
.tbb{border-radius:var(--r-m);background:transparent;box-shadow:none;color:var(--tx);border:1px solid transparent}.tbb:hover{background:var(--sky-l);border-color:var(--bd)}
.ic{border:1px solid var(--bd);border-top:6px solid var(--bd);border-radius:var(--r-l);box-shadow:var(--sh1)}
.ic.sb{border-top-color:var(--sky)}.ic.on{outline:3px solid var(--sky);outline-offset:-3px;background:var(--sky-l)}
.chip{border-radius:999px}.chip.sb{background:var(--sky-d)}
.tg{background:var(--sky-d);border-radius:999px}
.mbar{background:color-mix(in srgb,var(--bd) 70%,transparent)}.mbar i{background:var(--sky)}
.tvw{background:linear-gradient(135deg,#0A78BD,#0A5C96);border-radius:var(--r-l);box-shadow:var(--sh2)}
.tvb i{background:var(--sky)}.tvt tr.top td{background:var(--sky-l)}
.sk i{background:linear-gradient(90deg,var(--bd),var(--sky-l),var(--bd));background-size:200% 100%;opacity:1;animation:shim 1.2s linear infinite}
@keyframes shim{to{background-position:-200% 0}}

/* ---- Menú lateral derecho ---- */
#ov{background:rgba(8,24,45,.55);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
#sp{border-radius:var(--r-xl) 0 0 var(--r-xl);box-shadow:-12px 0 40px -12px rgba(0,0,0,.5)}
.si{border-radius:var(--r-m);font-weight:600}.si:hover{background:var(--sky-l)}.si svg{color:var(--sky-d)}
.sf .ib{border-radius:var(--r-m)}

/* ---- Ventanas, avisos ---- */
dialog{border-radius:var(--r-xl);box-shadow:0 30px 70px -20px rgba(0,0,0,.6);border:1px solid color-mix(in srgb,var(--sky) 30%,var(--bd))}
dialog::backdrop{background:rgba(8,24,45,.58);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
dialog h3{letter-spacing:-.01em}
#dlg .big{color:var(--sky-d)}
.pmb{border-radius:var(--r-l);border:2px solid var(--bd);box-shadow:none;background:var(--tile);color:var(--tx)}
.pmb:hover{border-color:var(--sky)}
.pmb.on{background:linear-gradient(180deg,#178036,#14702F);border-color:#1B8A3C;color:#fff}
#toast{background:var(--ink);border:1px solid rgba(61,187,245,.45);border-radius:var(--r-l);font-weight:600;box-shadow:var(--sh2)}#toast.err{background:var(--red);border-color:transparent}
#updb,#ins{border-left:6px solid var(--sky);border-radius:var(--r-l);box-shadow:var(--sh2)}
#scn{border-radius:0 0 var(--r-l) var(--r-l);overflow:hidden}
#scm{background:rgba(11,37,66,.8)}

/* ---- Móvil (solo <=800px; la PC no cambia por esta sección) ---- */
@media(max-width:800px){
 header{padding:8px 10px;gap:4px}
 header .ib{min-width:34px;min-height:36px;padding:3px 5px;font-size:15px}
 header .ib svg{width:20px;height:20px}
 .hd-logo{width:32px;height:32px}
 header #q{padding-top:12px;padding-bottom:12px}
 .left{padding:8px 8px 0}
 .tot{padding:8px 4px 0}.tot .big{font-size:26px}
 .keys{background:var(--pn);border-top:1px solid var(--bd)!important;border-radius:var(--r-xl) var(--r-xl) 0 0;box-shadow:0 -10px 30px -14px rgba(11,37,66,.4);padding:10px 10px calc(10px + env(safe-area-inset-bottom))}
 #mqt{color:var(--sky-d);font-weight:700;min-height:36px;background:transparent;box-shadow:none}
 .keys .k.q{min-height:64px}
 #sb.open{background:linear-gradient(180deg,#0E2F57,#0A1E38);border-bottom:0}
 #sb.open button{border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.05)}
 #sb.open button.on{border-color:transparent}
 #invv table.rt tr{border-radius:var(--r-l);box-shadow:var(--sh1)}
 dialog{border-radius:var(--r-xl)}
}
@media(prefers-reduced-motion:reduce){#login{animation:none}.sk i{animation:none}.k:hover,.card:hover{transform:none}}


/* ---- Políticas de uso ---- */
.pol-foot{margin-top:16px;padding-top:12px;border-top:1px solid var(--bd);display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--mu)}
.pol-foot button{font-size:12px;padding:6px 12px}
#dpol{width:min(620px,94vw)}
#dpol .pol-body{max-height:62vh;overflow:auto;padding-right:6px;font-size:14px;line-height:1.5}
#dpol .pol-body h4{margin:14px 0 4px;color:var(--o)}
#dpol .pol-body p{margin:0 0 6px}

/* ---- Acceso v2: Buscar usuario → PIN → Acceder (sin licencia en el inicio diario) ---- */
#login{width:min(760px,94vw);text-align:left;padding:24px}
.lg-head{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.lg-head .lgn-logo{width:104px;max-width:none;margin:0;flex:none}
@media(max-width:700px){.lg-head .lgn-logo{width:88px}}
.lg-head h2{margin:0;color:var(--o);font-size:26px}
.lg-head p{margin:2px 0 6px;color:var(--mu);font-weight:600}
.actb{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:800;color:#17692f;background:rgba(47,211,107,.16);border:1px solid rgba(47,211,107,.45);border-radius:999px;padding:3px 10px}
[data-theme=dark] .actb{color:#7BE39A}
#lgmsg{margin:0 0 12px;color:var(--mu)}#lgmsg:empty{display:none}
.lg-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.lg-grid[hidden]{display:none}
.lg-users,.lg-acc{background:var(--sky-l);border:1px solid var(--bd);border-radius:var(--r-l);padding:14px;min-width:0}
.lg-users h3{margin:0 0 8px;font-size:15px}
#usq{width:100%;margin-bottom:8px;border-radius:var(--r-l)}
#users{max-height:300px;overflow:auto}
#users button{display:flex;align-items:center;gap:12px;width:100%;margin:6px 0;padding:10px 12px;background:var(--pn);color:var(--tx)}
#users button.on{border-color:var(--sky);background:var(--sel);box-shadow:0 0 0 3px var(--sky-a)}
#users p{margin:8px 0;color:var(--mu)}
.lg-av{flex:none;width:38px;height:38px;border-radius:50%;background:linear-gradient(180deg,#14406F,#0E2F57);color:#fff;display:grid;place-items:center;font-weight:800;text-transform:uppercase}
.lg-acc{display:flex;flex-direction:column;justify-content:center;text-align:center}
#lgph{color:var(--mu);padding:24px 8px;margin:0}
#pinbox{display:flex;flex-direction:column;gap:10px;align-items:center}#pinbox[hidden]{display:none}
#pinbox .lg-av{width:56px;height:56px;font-size:22px}
#who{margin:0;font-weight:800;font-size:18px}
#pinbox label{font-size:13px;color:var(--mu)}
#pinbox button{width:100%;padding:13px;font-size:16px}
#lkbar{text-align:center}#lkbar[hidden]{display:none}
@media(max-width:700px){#login{padding:18px}.lg-grid{grid-template-columns:1fr}.lg-acc{display:none}#login.lg-sel .lg-users{display:none}#login.lg-sel .lg-acc{display:flex}#lgph{display:none}}

/* ---- Etapa: totales de inventario, edición de compras ---- */
.le{width:96px;min-width:0;padding:7px 9px;border:1px solid var(--bd);border-radius:var(--r-s);background:var(--pn);color:var(--tx);font:inherit;font-weight:700;text-align:right}
.le:hover{border-color:var(--sky)}.le:focus{border-color:var(--sky);box-shadow:0 0 0 3px var(--sky-a);outline:0}
.le.bad{border-color:var(--red);background:color-mix(in srgb,var(--red) 10%,var(--pn));color:var(--rt)}
.vt{display:flex;flex-wrap:wrap;align-items:stretch;gap:10px;margin-top:10px;padding:10px;background:var(--pn);border:1px solid var(--bd);border-radius:var(--r-l);box-shadow:var(--sh1)}
.vt .vi{flex:1 1 200px;display:flex;flex-direction:column;gap:2px;padding:10px 16px;border-radius:var(--r-m);background:var(--sky-l);border:1px solid var(--bd)}
.vt .vi span{font-size:13px;font-weight:700;color:var(--mu)}
.vt .vi b{font-size:24px;line-height:1.15;font-weight:800;letter-spacing:-.02em}
.vt .vc{background:color-mix(in srgb,var(--sky) 14%,var(--pn))}.vt .vc b{color:var(--bt)}
.vt .vp{background:color-mix(in srgb,var(--green) 12%,var(--pn))}.vt .vp b{color:var(--gt)}
.vt .vg{background:color-mix(in srgb,var(--o) 12%,var(--pn))}.vt .vg b{color:var(--o)}
.vt small{flex:1 0 100%;color:var(--mu)}
@media(max-width:800px){.vt .vi b{font-size:20px}.le{width:78px}}

/* ---- Cobro multimoneda ---- */
.fxn{margin:-6px 0 10px;text-align:center;font-weight:700;color:var(--bt)}
.fxs{margin:0 0 10px;padding:10px 12px;border-radius:var(--r-m);background:var(--sky-l);border:1px solid var(--bd);font-size:14px;line-height:1.5}
.ccr{margin:0 0 10px;padding:8px 12px;border:1px solid var(--bd);border-radius:var(--r-m);display:flex;gap:18px;flex-wrap:wrap}
.ccr legend{font-size:13px;font-weight:700;color:var(--mu);padding:0 6px}.ccr label{display:flex;gap:6px;align-items:center;font-weight:700;cursor:pointer}
.fxc{max-width:520px;margin:6px 0 12px;padding:12px;border:1px solid var(--bd);border-radius:var(--r-l);background:var(--pn);box-shadow:var(--sh1)}.fxc small{display:block;margin-top:6px;color:var(--mu)}

/* PIN de acceso: no usar type=password evita que Chrome lo trate como contraseña web.
   El valor sigue ocultándose visualmente mediante CSS; la validación del PIN no cambia. */
.spos-pin-field{-webkit-text-security:disc;text-security:disc;}
.spos-pin-field::-ms-reveal,.spos-pin-field::-ms-clear{display:none;}

label.w{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 16px!important;font-weight:700;border-radius:var(--r-m)!important;border:1px solid var(--bd)!important;background:var(--pn)!important;color:var(--tx);cursor:pointer;margin:4px 4px 4px 0}
/* ---- Ajuste móvil: botones de acción nunca pegados (V22) ----
   Muchos módulos arman botones seguidos dentro de <p>/<div> sin contenedor .acts, solo separados por un espacio.
   Al partirse en varias líneas en el celular quedaban sin separación vertical ni horizontal. */
@media(max-width:800px){
 #invv button:not(.tbb):not(.card):not(.ib):not(.k),dialog button:not(.tbb):not(.card):not(.ib):not(.k){margin:4px 4px 4px 0}
 #invv .acts button,dialog .acts button,#invv .cards .card,#invv .tb button,#invv table button,#invv .sr button,#invv .vt button{margin:0}
 #invv .acts,dialog .acts{gap:10px}
 #invv .cards{gap:10px}
 #invv .tb{gap:8px}
 #invv select,#invv input:not([type=checkbox]):not([type=radio]){margin-top:2px;margin-bottom:2px}
 #invv .mc button+button,#invv small+button,#invv b+button{margin-left:0}
 /* botones en filas de mensajes de estado (p. ej. «Licencia en servidor» → Registrar ahora) */
 #invv :is(p,div,span,b,small)+button,#invv br+button{margin-top:8px}
}
/* ---- V31 · Móvil: tarjetas compactas, reporte de ventas y rendimiento (solo <=800px; la PC no cambia) ---- */
.mrep{display:none}
@media(max-width:800px){
 .pconly{display:none!important}
 .mrep{display:block;background:var(--pn);border:1px solid var(--bd);border-radius:var(--r-l);padding:12px;margin:10px 0}
 .mrep h3{margin:0 0 8px;font-size:17px}
 .mrep small{display:block;margin:10px 0 4px;color:var(--mu);font-weight:700}
 .mrep .mrg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px}
 #invv .mrep button{margin:0!important;min-height:40px;padding:6px 4px;font-size:14px}
 #invv .mrep .mrgo{width:100%;margin-top:12px!important;min-height:46px;font-size:16px}
 #invv .mrep input{margin:8px 0 0}
 .ist{gap:8px}
 .ist .ic{padding:10px 6px;min-height:0}.ist .ic b{font-size:24px;line-height:1.1}.ist .ic span{font-size:14px}.ist .ic small{font-size:12px}
 #invv .pc{padding:10px 12px;gap:8px;margin-bottom:8px}
 #invv .pc b{font-size:15px}#invv .pcs .acts button{min-height:34px;padding:4px 14px}
 .cd{padding:10px 12px}.cd h2{font-size:18px;margin-bottom:6px}.hug{font-size:40px}.bars{height:110px}
 #invv .tvt td,#invv .tvt th{padding:5px 10px;font-size:14px}
 .cd,.dsr,.mrep,#invv .pc{content-visibility:auto;contain-intrinsic-size:auto 160px}
 #invv .card,#invv .cd,#invv .pc,.ist .ic{box-shadow:none}
}

/* ---- Créditos: tabla legible, estado en píldora y tarjetas en móvil ---- */
.pill{display:inline-flex;align-items:center;gap:4px;white-space:nowrap;padding:3px 10px;border-radius:999px;font-size:13px;font-weight:700;border:1px solid transparent}
.pill.ok{background:#e3f5e6;color:#14702F;border-color:#b9e2c0}.pill.wn{background:#fff4cc;color:#7a5a00;border-color:#f0dd8a}
.pill.vc{background:#ffe6d1;color:#a14100;border-color:#f6c39a}.pill.bl{background:#fde0e0;color:#a32525;border-color:#f3b4b4}.pill.nu{background:#eceff1;color:#4a5560;border-color:#d3d9de}
[data-theme=dark] .pill.ok{background:#16351b;color:#8fe39a;border-color:#2c6a36}[data-theme=dark] .pill.wn{background:#3a3210;color:#f2da6b;border-color:#6d5f1c}
[data-theme=dark] .pill.vc{background:#3d2410;color:#ffb27a;border-color:#7a4a22}[data-theme=dark] .pill.bl{background:#3d1717;color:#ff9a9a;border-color:#7a2f2f}[data-theme=dark] .pill.nu{background:#2a2f33;color:#b9c2c9;border-color:#444c52}
.crw{overflow-x:auto;border-radius:var(--r-m,10px)}
#invv table.crt{display:table;width:100%;overflow:visible}
.crt th{white-space:nowrap}.crt td{vertical-align:middle}.crt .crn{font-weight:700}
.crt td.cra{width:1%}.crt .cra .acts{display:grid;grid-template-columns:repeat(2,minmax(0,auto));gap:6px;min-width:0}
.crt .cra .acts button{margin:0;min-height:34px;padding:4px 12px;white-space:nowrap;font-size:13px}
@media(min-width:1280px){.crt .cra .acts{grid-template-columns:repeat(4,auto)}}
@media(max-width:800px){
 .crw{overflow:visible}
 #invv table.crt,#invv table.crt tbody{display:block;overflow:visible}
 .crt tr:first-child{display:none}
 .crt tr{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;background:var(--pn);border:1px solid var(--bd);border-radius:14px;padding:12px;margin:0 0 12px;box-shadow:0 1px 4px rgba(0,0,0,.08)}
 .crt td{display:flex;flex-direction:column;gap:1px;border:0;padding:0;font-size:14px}
 .crt td::before{content:attr(data-l);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--mu)}
 .crt td.crn{grid-column:1/2;font-size:17px}.crt td.crn::before{display:none}
 .crt td.crs{grid-column:2/3;align-items:flex-end;justify-content:center}.crt td.crs::before{display:none}
 .crt td[data-l="Saldo"]{grid-column:1/-1;font-size:22px;padding:6px 0;border-top:1px dashed var(--bd);border-bottom:1px dashed var(--bd)}
 .crt td.cra{grid-column:1/-1;width:auto;margin-top:4px}
 .crt .cra .acts{grid-template-columns:1fr 1fr;gap:8px}
 .crt .cra .acts button{min-height:44px;font-size:14px;white-space:normal}
 .crt .cra .acts button.o{grid-column:1/-1;min-height:48px;font-size:16px}
}

/* ---- Recuperación de PIN ---- */
.lgf{background:none!important;border:0!important;box-shadow:none!important;color:var(--bt);text-decoration:underline;font-size:14px;font-weight:600;min-height:40px;padding:6px 8px!important;align-self:center;cursor:pointer}
#drec{max-width:min(440px,94vw);width:94vw;border-radius:16px}
#drec .recf{display:grid;gap:6px;margin:8px 0}#drec .recf label{font-size:13px;font-weight:700;color:var(--mu)}
#drec .recf input{width:100%;min-height:44px;font-size:17px}#drec .reccin{letter-spacing:.12em;font-family:ui-monospace,Menlo,Consolas,monospace;text-transform:uppercase}
.reccode{font:800 26px/1.2 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.1em;text-align:center;padding:16px 8px;margin:10px 0;border:2px dashed var(--o);border-radius:12px;background:var(--pn);user-select:all;word-break:break-all}
#drec .recw{font-size:13px;color:var(--mu)}#drec .recm{margin-top:10px;padding-top:10px;border-top:1px dashed var(--bd)}#drec .recm button{width:100%;min-height:44px}#drec .rech{margin-top:12px;font-size:13px}#drec .rech summary{cursor:pointer;font-weight:700}
#drec .acts{margin-top:10px}#drec .acts button{min-height:44px;flex:1 1 auto}
/* ---- V34 · Impuestos, por mayor, móvil de Productos ---- */
.chk{display:flex;gap:8px;align-items:center;font-weight:700;cursor:pointer}.chk input{width:auto;min-width:18px;height:18px;margin:0}
.whrow{display:flex;gap:8px;align-items:center;margin:6px 0;padding:8px 12px;border:1px solid var(--bd);border-radius:var(--r-m);background:var(--sky-l);font-weight:700;color:var(--bt);cursor:pointer}.whrow input{width:18px;height:18px;margin:0}.whrow[hidden]{display:none}
@media(max-width:800px){
 #invv .tb{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
 #invv .tbb{min-width:0;padding:10px 4px;font-size:12px;line-height:1.15;text-align:center;border:1px solid var(--bd);background:var(--pn);border-radius:var(--r-m);justify-content:center}
 #invv .tbb svg{width:24px;height:24px}
 #invv .split .tree{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:8px;max-height:none;width:100%;padding:8px;-webkit-overflow-scrolling:touch}
 #invv .split .tree button{flex:0 0 auto;width:auto;white-space:nowrap;min-height:40px;padding:8px 14px;border:1px solid var(--bd);border-radius:999px;background:var(--pn)}
 #invv .split .tree button.on{background:var(--sel);box-shadow:none;border-color:var(--sky)}
 #invv .split .tree button small{color:var(--mu)}
 #invv .sr{display:flex;flex-wrap:wrap;align-items:center;gap:6px}#invv .sr input{flex:1 1 100%;min-width:0}#invv .sr b{flex:1 1 100%;font-size:14px;color:var(--mu)}
 #invv .vt{position:sticky;bottom:0;z-index:5;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:8px;margin:10px 0 0;border-radius:var(--r-l) var(--r-l) 0 0;box-shadow:0 -4px 14px rgba(0,0,0,.14)}
 #invv .vt .vi{flex:none;min-width:0;padding:6px 8px}
 #invv .vt .vi span{font-size:11px;line-height:1.15}
 #invv .vt .vi b{font-size:14px;line-height:1.2;overflow-wrap:anywhere}
 #invv .vt small{grid-column:1/-1;font-size:11px;text-align:center}
}
#splash{position:fixed;inset:0;z-index:9999;display:none;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:#0d2a4d;color:#fff;font-weight:700}
html:not(.ready) #splash{display:flex}html:not(.ready) #login{visibility:hidden}
#splash img{width:72px;height:72px;border-radius:16px;object-fit:cover}
#splash i{width:26px;height:26px;border-radius:50%;border:3px solid rgba(255,255,255,.25);border-top-color:#fff;animation:spn .8s linear infinite}
@keyframes spn{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){#splash i{animation-duration:2s}}

/* ---- Ventana Nuevo / Editar producto (V41) ---- */
.pfd{width:min(820px,96vw);max-width:96vw;max-height:94vh;padding:0;overflow:hidden;border-radius:var(--r-xl)}
.pfd[open]{display:flex;flex-direction:column}
.pf-h{display:flex;align-items:center;gap:14px;padding:14px 22px;background:linear-gradient(135deg,var(--ink),var(--ink2));color:#fff}
.pf-ic{display:grid;place-items:center;width:48px;height:48px;border-radius:var(--r-m);background:rgba(255,255,255,.1);color:#fff;flex:none}
.pf-ht{flex:1;min-width:0}.pf-h h3{margin:0;font-size:22px;color:#fff}.pf-h small{color:#cfe6f7;font-size:14px}
.pfd .pf-x{margin:0!important;width:36px;height:36px;padding:0;border-radius:50%;background:transparent;color:#fff;box-shadow:none;font-size:20px;line-height:1}
.pfd .pf-x:hover{background:rgba(255,255,255,.14)}
.pf-b{padding:14px 22px 8px;overflow:auto;display:flex;flex-direction:column;gap:12px;min-height:0}
.pf-g{display:grid;gap:12px 16px;grid-template-columns:1fr;align-items:end}.pf-2{grid-template-columns:1fr 1fr}.pf-3{grid-template-columns:1fr 1fr 1fr}
.pf-s{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.pf-b label{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:14px;color:var(--tx);min-width:0}
.pf-b label i{color:var(--red);font-style:normal}
.pf-b label.chk{flex-direction:row;align-items:center;gap:8px;font-weight:600}
.pf-b input:not([type=checkbox]),.pf-b select{width:100%;font-weight:600}
.pf-bc{display:flex;gap:8px}.pf-bc input{flex:1;min-width:0}
.pfd .pf-bb{margin:0!important;flex:none;width:46px;padding:0;display:grid;place-items:center}
.pf-pre{display:flex;align-items:stretch;border:1.5px solid var(--bd);border-radius:var(--r-m);background:var(--pn);overflow:hidden;transition:border-color 140ms ease,box-shadow 140ms ease}
.pf-pre:focus-within{border-color:var(--sky);box-shadow:0 0 0 4px var(--sky-a)}
.pf-pre b{display:grid;place-items:center;padding:0 12px;background:var(--sky-l);color:var(--mu);font-size:13px;font-weight:700}
.pf-pre input{border:0!important;border-radius:0!important;box-shadow:none!important;background:transparent!important;min-width:0}
.pf-suf b{order:2}
.pf-tax{background:var(--sky-l);border:1px solid var(--sky-a);border-radius:var(--r-l);padding:12px 16px;display:flex;flex-direction:column;gap:10px}
.pf-th{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.pf-th b{font-size:16px}
.pf-pi{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:linear-gradient(180deg,#0A78BD,#0A6AA6);color:#fff}
.pf-hint{font-size:12.5px;color:var(--mu);font-weight:500}
.pf-tr{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pf-seg{display:inline-flex;padding:4px;gap:2px;background:var(--pn);border:1px solid var(--bd);border-radius:var(--r-m)}
.pfd .pf-seg button{margin:0!important;background:transparent;color:var(--tx);box-shadow:none;padding:8px 16px;font-size:13.5px;border-radius:var(--r-s);font-weight:700}
.pfd .pf-seg button.on{background:linear-gradient(180deg,#0A78BD,#0A6AA6);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 4px 10px -6px rgba(11,123,191,.8)}
.pf-cu{width:128px}.pf-incl{font-size:13.5px!important}
.pf-tl{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.pf-tl div{background:var(--pn);border:1px solid var(--bd);border-radius:var(--r-m);padding:10px 14px;display:flex;flex-direction:column;gap:2px;min-width:0}
.pf-tl small{color:var(--mu);font-weight:600;font-size:12.5px}.pf-tl b{font-size:19px;color:var(--tx);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pf-tl .pf-gan b{color:var(--gt)}
.pf-bt{align-items:center}.pfd .pf-gen{margin:0!important;display:flex;align-items:center;justify-content:center;gap:8px;justify-self:end;width:100%;max-width:300px;padding:11px 14px}
.pf-f{display:flex;justify-content:flex-end;gap:12px;padding:14px 22px;border-top:1px solid var(--bd);background:var(--pn)}
.pfd .pf-f button{margin:0!important;display:flex;align-items:center;gap:8px;padding:11px 20px}
.pth{width:34px;height:34px;border-radius:6px;border:1px solid var(--bd);background:#fff;object-fit:cover;display:inline-block;vertical-align:middle;cursor:zoom-in}
span.pth.no{background:transparent;border-style:dashed;cursor:default}
.pf-img{display:flex;align-items:center;gap:12px}.pf-it{width:48px;height:48px;border-radius:8px;border:1px dashed var(--bd);background:transparent;object-fit:cover;flex:none;display:flex;align-items:center;justify-content:center;color:var(--tx);opacity:.6;cursor:pointer;padding:0}
img.pf-it{border-style:solid;opacity:1;background:#fff}.pf-ic2{flex:1;min-width:0}.pf-ic2 .acts{margin:4px 0}
.pimgd{width:min(720px,96vw);max-height:96dvh;padding:12px;text-align:center}.pimgd img{width:100%;max-height:74vh;max-height:74dvh;object-fit:contain;border-radius:10px;display:block;margin:0 auto 8px;background:#fff}.pimgd .pt{margin-bottom:8px}
.pf-flash{animation:pff .7s var(--ease-out)}@keyframes pff{0%{box-shadow:0 0 0 5px var(--sky-a);border-color:var(--sky)}100%{box-shadow:none}}
@media(prefers-reduced-motion:reduce){.pf-flash{animation:none}}
@media(max-width:640px){.pfd{width:100vw;max-width:100vw;max-height:100dvh;height:100dvh;border-radius:0}.pf-h{padding:14px 16px}.pf-b{padding:14px 16px 4px}.pf-2,.pf-3{grid-template-columns:1fr}.pf-s{grid-template-columns:1fr 1fr}.pf-tl{grid-template-columns:1fr}.pf-f{padding:12px 16px}.pfd .pf-f button{flex:1;justify-content:center}.pf-bt{grid-template-columns:1fr}.pfd .pf-gen{max-width:none;justify-self:stretch}.pf-seg{width:100%}.pfd .pf-seg button{flex:1;padding:8px 6px}}

/* ---- Ventana Cobrar (V58 · rediseño PC + móvil, 4 temas) ---- */
#dlg.cbd{--cbh1:#5CCBFA;--cbh2:#22A3EA;--cbhx:#06223F;--cbhs:#0A3558;width:min(920px,97vw);max-width:97vw;max-height:96vh;padding:18px;overflow:auto;background:var(--bg);border:1px solid var(--bd);border-radius:var(--r-xl)}
[data-theme=dark] #dlg.cbd{--cbh1:#2D86C2;--cbh2:#16568A;--cbhx:#fff;--cbhs:#CFE9FA}
[data-theme=azul] #dlg.cbd{--cbh1:#4DB8F5;--cbh2:#1A8FE0;--cbhx:#04203A;--cbhs:#0A3558}
[data-theme=naranja] #dlg.cbd{--cbh1:#FFB36B;--cbh2:#F58A3C;--cbhx:#2B1708;--cbhs:#5E2D0A}
#dlg.cbd button{margin:0!important}
#dlg.cbd,#dlg.cbd *{box-sizing:border-box}#dlg.cbd{overflow-x:hidden}
#dlg.cbd .cb-svg{display:block;flex:none}
#dlg.cbd kbd{font:700 12.5px var(--font);color:var(--mu);background:none;border:0;padding:0}
.cb-mb{display:none}
.cb-top{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:14px;margin-bottom:12px}
.cb-c{background:var(--pn);border:1px solid var(--bd);border-radius:var(--r-l);box-shadow:var(--sh1);padding:10px 20px;display:flex;align-items:center;gap:14px;min-width:0}
.cb-c .cb-ic{color:var(--sky-d);display:grid;place-items:center;flex:none}
.cb-c small{display:block;color:var(--mu);font-size:14px;font-weight:700}
.cb-tot b{display:block;font-size:46px;line-height:1.05;font-weight:800;color:var(--sky-d);letter-spacing:-.02em;white-space:nowrap}
.cb-v{font-size:25px;font-weight:800;color:var(--tx);line-height:1.2;white-space:nowrap}.cb-usdv{color:var(--sky-d)}
.cb-p{background:var(--pn);border:1px solid var(--bd);border-radius:var(--r-l);box-shadow:var(--sh1);padding:12px 14px;margin-bottom:12px;min-width:0}
.cb-p h4{margin:0 0 10px;display:flex;align-items:center;gap:8px;font-size:16px;color:var(--tx)}
.cb-i{color:var(--sky-d);display:grid;place-items:center;flex:none}
.cb-tv{display:grid;grid-template-columns:1fr 1fr;gap:14px}
#dlg.cbd .cbm{display:flex;align-items:center;justify-content:center;gap:10px;padding:12px 16px;font-size:18px;font-weight:800;background:var(--tile);color:var(--tx);border:1.5px solid var(--bd);border-radius:var(--r-m);box-shadow:none;width:100%;min-width:0}
#dlg.cbd .cbm b{font-weight:800;min-width:0}
#dlg.cbd .cbm:hover{border-color:var(--sky)}
#dlg.cbd .cbm.on{background:linear-gradient(180deg,#25A04A,#178036);border-color:#1B8A3C;color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.25)}
#dlg.cbd .cbm.on .cb-i,#dlg.cbd .cbm.on kbd{color:#fff}
#dlg.cbd .cbm kbd{margin-left:auto}
#dlg.cbd .cbn{justify-content:center}
.cb-wc{display:flex;align-items:center;gap:10px;border:1.5px dashed var(--bd);border-radius:var(--r-m);padding:8px 14px;background:var(--tile)}
.cb-wc:not(.off){border-style:solid;border-color:var(--sky)}
.cb-wc.off{border-color:color-mix(in srgb,var(--red) 45%,var(--bd));background:color-mix(in srgb,var(--red) 4%,var(--tile))}.cb-wc.off .cb-i{opacity:.8}
.cb-wt{flex:1;min-width:0;display:flex;align-items:baseline;flex-wrap:wrap;gap:0 6px}.cb-wt b{font-size:16px;color:var(--mu);font-weight:800}.cb-wc:not(.off) .cb-wt b{color:var(--tx)}
.cb-wt small{display:inline-flex;color:var(--mu);font-weight:700;font-size:15px}.cb-wt small i{display:none}.cb-wt small span::before{content:"· "}
#dlg.cbd .cb-sw{position:relative;flex:none;width:50px;height:28px;padding:0;border-radius:14px;background:var(--bd);box-shadow:none;border:0;transition:background 160ms ease}
#dlg.cbd .cb-sw::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.35);transition:transform 160ms var(--ease-out)}
#dlg.cbd .cb-sw.on{background:var(--sky-d)}#dlg.cbd .cb-sw.on::after{transform:translateX(22px)}
.cb-pm{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
#dlg.cbd .cb-pm .cbm{padding:12px 10px;font-size:16.5px;justify-content:flex-start}
#dlg.cbd .cb-pm .cbm b{flex:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#dlg.cbd .cb-pm .cbm .cb-svg{width:24px;height:24px}
.cb-pm .cbm .s{display:none}
.cb-rc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}.cb-rc>*,.cb-fl,.cb-in,.cb-in input{min-width:0}.cb-in input{width:100%}.cb-rc>[hidden]{display:none}
.cb-rc>#prow:only-of-type,.cb-rc:has(#usdrow[hidden])>#prow{grid-column:1/-1}
.cb-fl{display:flex;flex-direction:column;gap:6px;font-weight:800;font-size:15px;color:var(--mu)}.cb-fl em{font-weight:500;font-style:normal}
.cb-in{display:flex;align-items:center;gap:10px;border:1.5px solid var(--bd);border-radius:var(--r-m);background:var(--pn);padding:0 14px;transition:border-color 140ms ease,box-shadow 140ms ease}
.cb-in:focus-within{border-color:var(--sky);box-shadow:0 0 0 4px var(--sky-a)}
.cb-in input{flex:1;min-width:0;border:0!important;background:transparent!important;box-shadow:none!important;padding:6px 0;font-size:19px;font-weight:700;color:var(--tx)}
#rec,#recusd{font-size:42px!important;font-weight:800!important;line-height:1.15;letter-spacing:-.02em}
#recusd{color:var(--mu)}#recusd:not(:placeholder-shown){color:var(--tx)}
#rec::-webkit-inner-spin-button,#recusd::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}#rec,#recusd{-moz-appearance:textfield}#rec::placeholder,#recusd::placeholder{color:var(--mu);opacity:.8}
.cb-cur{font-size:20px;font-weight:800;color:var(--mu);flex:none}
.cb-eqt{margin-top:6px;font-size:14.5px;font-weight:800;color:var(--bt)}.cb-eqt b{color:var(--bt)}.cb-eqt small{display:block;color:var(--mu);font-weight:600;font-size:12.5px}
.cb-fx,.cb-usd{margin:0}
#crow{margin-top:10px}#crow[hidden],#crx[hidden]{display:none}
.cb-ch{display:flex;align-items:center;gap:14px;margin-top:12px;padding:12px 22px;border-radius:var(--r-l);background:linear-gradient(180deg,var(--cbh1),var(--cbh2));color:var(--cbhx);box-shadow:var(--sh1),inset 0 1px 0 rgba(255,255,255,.35)}
.cb-chi{display:grid;place-items:center;flex:none;color:var(--cbhx)}
.cb-cht{display:flex;flex-direction:column;min-width:0;flex:1}.cb-cht b{font-size:21px;font-weight:800;letter-spacing:.02em;text-transform:uppercase}
.cb-cht small{font-size:15px;font-weight:700;color:var(--cbhs)}
.cb-chv{display:flex;align-items:center;gap:18px;flex-wrap:wrap;justify-content:flex-end}
#dlg.cbd #chg{font-size:54px;line-height:1;font-weight:800;letter-spacing:-.02em;color:var(--cbhx);white-space:nowrap}
#chgu{font-size:17px;font-weight:800;color:var(--cbhs);white-space:nowrap}
.cb-sts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:12px}
#dlg.cbd .cb-st{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;padding:11px 8px;background:var(--tile);color:var(--tx);border:1px solid var(--bd);border-radius:var(--r-m);box-shadow:none;font-weight:800;font-size:16.5px;min-height:48px}
#dlg.cbd .cb-st:hover{border-color:var(--sky)}
#dlg.cbd .cb-st.on{border-color:var(--sky);background:var(--sel)}
#dlg.cbd .cb-st.off{opacity:.55}
#dlg.cbd #cb_pr.on::after,#dlg.cbd #cb_iv.on::after{content:"";position:absolute;top:7px;right:8px;width:9px;height:9px;border-radius:50%;background:var(--green)}
.cb-cl{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:stretch;margin-top:12px}
.cb-cl .cb-fl{gap:0}.cb-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.cb-cl .cb-in{height:100%}.cb-cl .cb-in input{font-size:16px;font-weight:600;padding:12px 0}.cb-cl .cb-i{color:var(--mu)}
#dlg.cbd .cb-nw{padding:0 22px;font-size:17px;font-weight:800;white-space:nowrap;border-radius:var(--r-m)}
.cb-err{color:var(--red);min-height:0;margin:0;font-weight:700}.cb-err:not(:empty){margin-top:8px}
.cb-act{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:16px;position:sticky;bottom:-18px;background:var(--bg);padding:6px 0 2px;z-index:2}
#dlg.cbd .cb-act button{display:flex;align-items:center;justify-content:center;gap:12px;padding:15px 20px;font-size:22px;font-weight:800;border-radius:var(--r-l)}
#dlg.cbd .cb-act .ok kbd{color:#fff;background:rgba(255,255,255,.2);border-radius:999px;padding:3px 10px;font-size:14px}
@media(max-width:900px){#dlg.cbd{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0;border:0;padding:12px}
.cb-pc{display:none!important}.cb-mb{display:inline!important}
.cb-top{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;margin-bottom:10px}
.cb-c{padding:8px 16px;border-radius:var(--r-l)}.cb-c small{font-size:14px}
.cb-tot b{font-size:32px}.cb-v{font-size:22px}
.cb-fxc .cb-v{color:var(--tx)}.cb-fxc .cb-usdv{color:var(--tx)}
.cb-p{padding:10px;margin-bottom:10px}
.cb-tvc:has(.cb-wc.off){display:none}
.cb-tv{grid-template-columns:1fr}
.cb-pmc{padding:8px}
.cb-pm{gap:8px}
#dlg.cbd .cb-pm .cbm{flex-direction:column;justify-content:center;gap:4px;padding:10px 4px;font-size:14.5px;min-height:66px}
#dlg.cbd .cb-pm .cbm b{flex:none;text-align:center;overflow:visible}
#dlg.cbd .cb-pm .cbm kbd{display:none}.cb-pm .cbm .s{display:inline}.cb-pm .cbm .l{display:none}
.cb-rc{grid-template-columns:minmax(0,1fr);gap:10px}
.cb-fl{font-size:14px}
#rec,#recusd{font-size:34px!important}
.cb-eqt{display:none}
.cb-ch{padding:10px 18px;gap:10px;margin-top:12px}
.cb-chi{display:none}.cb-cht b{font-size:18px}.cb-cht small{display:none}
#dlg.cbd #chg{font-size:44px}#chgu{display:none}
.cb-chv{margin-left:auto}
.cb-sts{gap:8px}
#dlg.cbd .cb-st{flex-direction:column;gap:3px;padding:8px 2px;min-height:60px;font-size:14px}#dlg.cbd .cb-st kbd{display:none}
.cb-act{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:12px;bottom:-12px}
#dlg.cbd .cb-act button{padding:15px 10px;font-size:19px}}
@media(max-width:380px){#rec,#recusd{font-size:28px!important}#dlg.cbd #chg{font-size:36px}.cb-tot b{font-size:27px}}

/* ---- Pantalla Clientes y ventana «Agregar cliente» (V43) ---- */
.cl-h{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:2px 0 14px}
.cl-hi{display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:linear-gradient(180deg,#0A78BD,#0A6AA6);color:#fff;box-shadow:var(--sh1);flex:none}
.cl-ht{flex:1;min-width:200px}.cl-ht h2{margin:0;font-size:27px;color:var(--tx);line-height:1.15}.cl-ht small{font-size:14px;color:var(--mu)}
#invv .cl-new,#invv .cl-fb,#invv .cl-tb button,#invv .cl-pg button{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin:0}
.cl-new{padding:12px 22px;font-size:15px}
.cl-card{background:var(--pn);border:1px solid var(--bd);border-radius:var(--r-l);box-shadow:var(--sh1);padding:14px 16px;margin-bottom:12px}
.cl-bar{display:grid;grid-template-columns:minmax(200px,1fr) 190px 190px auto;gap:10px;align-items:center}
.cl-s{display:flex;align-items:center;gap:8px;border:1.5px solid var(--bd);border-radius:var(--r-m);background:var(--pn);padding:0 12px;color:var(--mu);transition:border-color 140ms ease,box-shadow 140ms ease}
.cl-s:focus-within{border-color:var(--sky);box-shadow:0 0 0 4px var(--sky-a)}
.cl-s input{flex:1;border:0!important;box-shadow:none!important;background:transparent!important;padding:11px 0!important;min-width:0;width:100%}
.cl-adv{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;margin-top:12px;padding:12px 14px;background:var(--sky-l);border:1px solid var(--sky-a);border-radius:var(--r-m)}
.cl-adv label{display:flex;align-items:center;gap:8px;font-weight:600;font-size:14px}
.cl-tools{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-top:14px}
.cl-cnt{display:inline-flex;align-items:center;gap:8px;color:var(--mu);font-weight:600}
.cl-tb{display:flex;flex-wrap:wrap;gap:10px}
#invv button.cl-del{background:rgba(208,58,58,.10);color:var(--rt);border:1px solid rgba(208,58,58,.38);box-shadow:none}
#invv button.cl-del:disabled{opacity:.45}
.cl-tc{padding:0;overflow:hidden}.cl-tw{overflow-x:auto}
.cl-t{width:100%;background:transparent}.cl-t th{background:var(--sky-l);color:var(--tx);font-size:13.5px;white-space:nowrap;border-bottom:1px solid var(--bd);padding:12px 10px}
.cl-t th.cl-so{cursor:pointer;user-select:none}.cl-t th.cl-so i{font-style:normal;opacity:.55;font-size:11px;margin-left:4px}.cl-t th.cl-so.on i{opacity:1;color:var(--sky-d)}
.cl-t td{padding:10px;vertical-align:middle;border-bottom:1px solid var(--bd)}.cl-t tbody tr:hover td{background:var(--sel)}
.cl-t input[type=checkbox]{width:18px;height:18px;accent-color:var(--sky-d);padding:0}
.cl-nm{font-weight:800}.cl-ty{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:999px;font-size:11.5px;font-weight:700;background:var(--sky-l);color:var(--sky-d);border:1px solid var(--sky-a);vertical-align:middle}
.cl-st{display:inline-flex;align-items:center;gap:6px;padding:3px 11px;border-radius:999px;font-weight:700;font-size:13px;background:rgba(27,138,60,.14);color:var(--gt)}
.cl-st::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.cl-st.no{background:rgba(208,58,58,.12);color:var(--rt)}
.cl-ac{white-space:nowrap;text-align:right}
#invv .cl-ab{width:38px;height:38px;min-height:38px;padding:0;display:inline-grid;place-items:center;border-radius:var(--r-s);margin-left:5px}
#invv .cl-ab.dk{background:linear-gradient(180deg,var(--ink2),var(--ink))}[data-theme=dark] #invv .cl-ab.dk{background:linear-gradient(180deg,#32608f,#1f4673)}
.cl-em{padding:34px 12px;text-align:center;color:var(--mu)}
.cl-pg{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;padding:12px 16px}
.cl-pp{display:flex;align-items:center;gap:8px;color:var(--mu);font-size:14px}.cl-pp select{padding:7px 10px}
.cl-pn{display:flex;gap:6px;align-items:center}#invv .cl-pn button{min-width:38px;padding:8px 10px}
.cl-menu{position:fixed;z-index:80;min-width:190px;background:var(--pn);color:var(--tx);border:1px solid var(--bd);border-radius:var(--r-m);box-shadow:var(--sh2);padding:6px}
.cl-menu button{display:flex;align-items:center;gap:10px;width:100%;margin:0;background:transparent;color:var(--tx);box-shadow:none;border-radius:var(--r-s);padding:10px 12px;font-weight:600;text-align:left}
.cl-menu button:hover{background:var(--sel)}
.cfd{width:min(760px,96vw)}.cfd .pf-b{gap:18px}
.cl-sec{display:flex;align-items:center;gap:10px;background:var(--sky-l);border-radius:var(--r-m);padding:10px 14px;font-weight:800;color:var(--tx)}.cl-sec svg{color:var(--sky-d)}
.cl-blk{display:flex;flex-direction:column;gap:12px}
.pf-pre select{border:0!important;border-radius:0!important;box-shadow:none!important;background:transparent!important;min-width:0;width:100%}
.pf-pre b svg{display:block}
.cl-rd{display:flex;gap:10px 26px;flex-wrap:wrap;padding:2px 2px 0}
.pf-b .cl-rd label{flex-direction:row;align-items:center;gap:8px;font-weight:600;cursor:pointer}
.pf-b .cl-rd input{width:18px!important;height:18px;accent-color:var(--sky-d);padding:0}
.pf-b label em{font-style:normal;font-weight:500;color:var(--mu)}
.cl-err{margin:0;color:var(--rt);font-weight:700;font-size:13.5px}.cl-err:empty{display:none}
.pf-f.cl-f{justify-content:space-between}.cl-fr{display:flex;gap:12px}
@media(max-width:900px){.cl-bar{grid-template-columns:1fr 1fr}.cl-s{grid-column:1/-1}.cl-fb{grid-column:1/-1}}
@media(max-width:800px){.cl-tc{overflow:visible;background:transparent;border:0;box-shadow:none}.cl-tw{overflow:visible}.cl-pg{padding:12px 4px}
 #invv .cl-t td.cl-ac{justify-content:flex-end}#invv .cl-new{width:100%}.cl-tb button{flex:1 1 auto}.cl-t td[data-l=""]::before{content:none}}
@media(max-width:640px){.cl-bar{grid-template-columns:1fr 1fr}.pf-f.cl-f{flex-direction:column-reverse;align-items:stretch}.cl-fr{flex-direction:column-reverse}.cl-fr button,.pf-f.cl-f>button{width:100%}}
@media(prefers-reduced-motion:reduce){.cl-s{transition:none}}

/* ---- Créditos (V47) ---- */
.crx{max-width:1180px;margin:0 auto;display:flex;flex-direction:column;gap:12px;font-size:15px}
.crx-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);gap:12px}
.crx-hero{border-radius:var(--r-l);padding:16px 18px;background:linear-gradient(135deg,var(--ink),var(--ink2));color:#fff;box-shadow:var(--sh1);display:flex;flex-direction:column;gap:6px;justify-content:center}
.crx-hi{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:linear-gradient(180deg,#0A78BD,#0A6AA6);font-size:26px}
.crx-hero small{font-size:17px;font-weight:600;color:#dbeaf7}.crx-hero b{font-size:clamp(28px,5vw,40px);line-height:1.05}
.crx-stats{display:grid;grid-template-columns:1fr 1fr;background:var(--pn);border:1px solid var(--bd);border-radius:var(--r-l);box-shadow:var(--sh1);overflow:hidden}
.crx-s{display:flex;gap:10px;align-items:flex-start;padding:14px;border:0 solid var(--bd)}.crx-s:nth-child(odd){border-right-width:1px}.crx-s:nth-child(-n+2){border-bottom-width:1px}
.crx-si{font-size:26px;color:var(--sky-d);display:grid}.crx-s small{display:block;color:var(--tx);font-size:14px}.crx-s b{display:block;font-size:clamp(20px,3.6vw,26px)}.crx-s.bad b{color:var(--red)}
.crx-n{margin:0;color:var(--mu)}
#invv .crx-new{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:14px;font-size:19px;margin:0}.crx-new svg{width:22px;height:22px}
.crx-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}
.crx-q,.crx-f{display:flex;align-items:center;gap:10px;background:var(--pn);border:1.5px solid var(--bd);border-radius:var(--r-m);padding:0 14px;box-shadow:var(--sh1)}.crx-q svg,.crx-f svg{font-size:22px;color:var(--tx);flex:none}
.crx-q input,.crx-f select{border:0!important;background:transparent!important;box-shadow:none!important;padding:12px 0;font-size:16px;min-width:0;width:100%}.crx-f select{width:auto;padding-right:4px;font-weight:700}
.crx-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
#invv .crx-t{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;padding:12px 14px;margin:0;border-radius:var(--r-l);border:1px solid var(--bd);background:var(--tile);color:var(--tx);box-shadow:var(--sh1);position:relative;font-size:16px;min-height:96px}
.crx-ti{font-size:30px;display:grid}.crx-t i{position:absolute;right:10px;top:12px;font-size:18px;color:var(--mu);display:grid}
.crx-t.a{background:color-mix(in srgb,#2b8cff 12%,var(--pn))}.crx-t.a .crx-ti{color:#1d6fd6}
.crx-t.b{background:color-mix(in srgb,#2ea66a 12%,var(--pn))}.crx-t.b .crx-ti{color:#1b8a3c}
.crx-t.c{background:color-mix(in srgb,#7a6cf0 12%,var(--pn))}.crx-t.c .crx-ti{color:#5b4bd1}
.crx-t.d{background:color-mix(in srgb,#ff9a3c 14%,var(--pn))}.crx-t.d .crx-ti{color:#e8801a}
.crx-pp{display:flex;align-items:center;gap:8px;color:var(--mu);font-size:14px}.crx-pp select{width:auto}
.crx-seg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;background:var(--pn);border:1px solid var(--bd);border-radius:var(--r-m);padding:4px}
#invv .crx-seg button{margin:0;background:transparent;color:var(--tx);box-shadow:none;border-radius:10px;padding:12px 4px;font-size:15px;display:flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap}
.crx-seg button i{width:9px;height:9px;border-radius:50%;background:var(--mu);flex:none}.crx-seg button[data-k=vig] i{background:#1b8a3c}.crx-seg button[data-k=ven] i{background:#e03a3a}.crx-seg button[data-k=all] i{display:none}
#invv .crx-seg button.on{background:linear-gradient(180deg,var(--ink2),var(--ink));color:#fff}
.crx-h{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.crx-h h3{margin:0;display:flex;align-items:center;gap:10px;font-size:20px}.crx-h h3 svg{font-size:26px;color:var(--ti)}
.crx-h label{display:flex;align-items:center;gap:6px;color:var(--mu);font-size:15px}.crx-h select{width:auto;font-weight:700;border:0;background:transparent;box-shadow:none}
.crx-l{display:grid;grid-template-columns:1fr;gap:10px}
.crx-c{background:var(--pn);border:1px solid var(--bd);border-radius:var(--r-l);box-shadow:var(--sh1);overflow:hidden}
.crx-m{display:flex;align-items:center;gap:12px;padding:12px 14px;cursor:pointer}
.crx-av{display:grid;place-items:center;flex:none;width:52px;height:52px;border-radius:50%;background:linear-gradient(180deg,var(--ink2),var(--ink));color:#fff;font-weight:800;font-size:18px}
.crx-i{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.crx-i b{font-size:17px;color:var(--ti);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crx-i small{color:var(--mu);font-size:13.5px;display:flex;align-items:center;gap:5px}
.crx-b{display:flex;flex-direction:column;align-items:flex-start;gap:3px;font-size:14.5px}.crx-b small{color:var(--mu);font-size:13.5px}.crx-r{color:var(--red)}
.crx-p{padding:3px 12px;border-radius:999px;font-weight:700;font-size:13.5px;color:#fff;background:#6b7885}.crx-p.ok{background:#1b8a3c}.crx-p.wn{background:#f5a524;color:#3b2a00}.crx-p.vc,.crx-p.bl{background:#e03a3a}
.crx-ch{font-size:20px;color:var(--ti);display:grid;transition:transform 160ms var(--ease-out)}.crx-c.open .crx-ch{transform:rotate(90deg)}
.crx-a{display:none;gap:8px;flex-wrap:wrap;padding:0 14px 14px}.crx-c.open .crx-a{display:flex}#invv .crx-a button{margin:0}
.crx-e{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:28px 14px;background:var(--pn);border:1px solid var(--bd);border-radius:var(--r-l)}.crx-e span{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--sky-l);font-size:32px;color:var(--sky-d)}.crx-e small{color:var(--mu)}
@media(min-width:900px){.crx-l{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.crx-top{grid-template-columns:1fr}.crx-tiles{grid-template-columns:1fr 1fr}.crx-m{padding:10px 12px;flex-wrap:wrap;row-gap:8px}.crx-av{width:46px;height:46px}.crx-i{flex:1 1 0}.crx-b{order:3;flex:1 0 100%;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 10px;border-top:1px dashed var(--bd);padding-top:8px}.crx-ch{margin-left:auto}.crx-seg button i{display:none!important}#invv .crx-seg button{font-size:13px;padding:10px 2px;white-space:normal;line-height:1.2}.crx-t b{font-size:15px}}

/* ---- Stock y ajuste (V47) ---- */
#invv #inv_c{display:grid!important;grid-template-columns:1fr;gap:10px}#invv #inv_t{display:none!important}
.sx-c{display:flex;align-items:center;gap:12px;background:var(--pn);border:1px solid var(--bd);border-radius:var(--r-l);box-shadow:var(--sh1);padding:10px 12px;min-width:0}
.sx-im{display:grid;place-items:center;flex:none;width:76px;height:76px;border-radius:var(--r-m);background:var(--sky-l);color:var(--sky-d);font-size:34px;overflow:hidden}.sx-im img{width:100%;height:100%;object-fit:cover}
.sx-i{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.sx-i b{font-size:16px;text-transform:uppercase;color:var(--ti);line-height:1.2}.sx-i small{color:var(--mu);font-size:14px}.sx-i em{font-style:normal;font-weight:800;color:var(--sky-d);text-transform:uppercase}
.sx-r{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:none}.sx-pr{font-size:19px}
#invv .sx-b{padding:4px 12px;border-radius:999px;font-weight:700;font-size:13.5px;color:#fff!important;background:#6b7885;white-space:nowrap}#invv .sx-b.sg{background:#1b8a3c}#invv .sx-b.sb{background:#1f8fe0}#invv .sx-b.sz{background:#e03a3a}#invv .ist .ic{padding:8px 6px}#invv .ist .ic b{font-size:22px}
#invv .sx-r .w{margin:0;padding:6px 18px;font-size:14px}
@media(min-width:900px){#invv #inv_c{grid-template-columns:repeat(auto-fill,minmax(400px,1fr))}}
@media(max-width:520px){.sx-im{width:62px;height:62px}.sx-i b{font-size:14.5px}}
.skd{width:min(640px,96vw);padding:16px;border-radius:var(--r-xl);box-sizing:border-box;max-height:96vh;overflow:auto}
.skd[open]{display:flex;flex-direction:column;gap:12px}
.sk-h{display:flex;align-items:center;gap:12px}.sk-ic{display:grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--sky-l);color:var(--sky-d);font-size:28px;flex:none}
.sk-t{flex:1;min-width:0}.sk-t h3{margin:0;font-size:26px;color:var(--ti)}.sk-t small{color:var(--mu);font-size:15px}
.sk-cur{background:var(--sky-l);border-radius:var(--r-l);padding:8px 16px;text-align:center}.sk-cur small{display:block;color:var(--tx);font-weight:600;font-size:13px}.sk-cur b{font-size:28px;color:var(--ti)}
.sk-p{display:flex;align-items:center;gap:12px;border:1px solid var(--bd);border-radius:var(--r-l);padding:10px;background:var(--pn)}.sk-im{display:grid;place-items:center;width:68px;height:68px;border-radius:var(--r-m);background:var(--sky-l);color:var(--sky-d);font-size:30px;overflow:hidden;flex:none}.sk-im img{width:100%;height:100%;object-fit:cover}
.sk-p b{display:block;font-size:17px;text-transform:uppercase;color:var(--ti)}.sk-p small{display:block;color:var(--mu)}.sk-p em{font-style:normal;font-weight:800;color:var(--sky-d)}
.sk-o{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.skd .sk-o button{margin:0;display:flex;align-items:center;gap:10px;text-align:left;padding:12px;background:var(--pn);color:var(--tx);border:2px solid var(--bd);border-radius:var(--r-l);box-shadow:none}
.sk-o button.on{border-color:var(--sky);background:var(--sky-l)}.sk-oi{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:#7f93ab;color:#fff;font-size:22px;flex:none}.sk-o button.on .sk-oi{background:var(--sky)}
.sk-o b{display:block;font-size:15px}.sk-o small{display:block;color:var(--mu);font-size:12.5px;font-weight:500}
.sk-f{display:flex;flex-direction:column;gap:6px}.sk-f>b{font-size:17px}.sk-f em{font-weight:500;font-style:normal;color:var(--mu)}
.sk-in{display:flex;align-items:center;gap:10px;border:1.5px solid var(--bd);border-radius:var(--r-m);background:var(--pn);padding:0 12px}.sk-in:focus-within{border-color:var(--sky);box-shadow:0 0 0 4px var(--sky-a)}.sk-in i{display:grid;color:var(--sky-d);font-size:22px;font-style:normal}.sk-in input{flex:1;border:0!important;background:transparent!important;box-shadow:none!important;padding:12px 0;font-size:18px;min-width:0}
.sk-e{color:var(--red);font-weight:600;margin:0;min-height:1.2em}
.sk-a{display:grid;grid-template-columns:1fr 1fr;gap:12px}.skd .sk-a button{margin:0;display:flex;align-items:center;justify-content:center;gap:10px;padding:14px;font-size:18px}
@media(max-width:560px){.skd .sk-o button{flex-direction:column;text-align:center;gap:6px;padding:10px 4px}.sk-o b{font-size:14px}.sk-t h3{font-size:22px}}
/* ---- Caja y gastos (V47) ---- */
.cj{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1fr;gap:12px;align-items:start}.cj-c1,.cj-c2{display:flex;flex-direction:column;gap:12px;min-width:0}
.cj-p{background:var(--pn);border:1px solid var(--bd);border-radius:var(--r-l);box-shadow:var(--sh1);padding:12px 14px}
.cj-cfg{display:grid;grid-template-columns:auto 1fr;gap:10px 12px;align-items:center}.cj-cfg .cj-wide{grid-column:1/-1}
.cj-sh{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--sky-l);color:var(--ti);font-size:24px;flex:none}
.cj-tt{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.cj-tt b{font-size:19px;color:var(--ti)}.cj-tt em{font-style:normal;font-weight:800;font-size:14px;letter-spacing:.02em}.cj-ct small{color:var(--mu);font-size:14px}
.cj-sw{position:relative;width:54px;height:30px;padding:0;border-radius:15px;background:var(--bd);box-shadow:none;border:0;margin:0!important}.cj-sw::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.35);transition:transform 160ms var(--ease-out)}.cj-sw.on{background:#1b8a3c}.cj-sw.on::after{transform:translateX(24px)}
#invv .cj-wide{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:13px;font-size:18px;margin:0}
.cj-since{display:flex;align-items:center;gap:12px}.cj-since small{display:block;color:var(--mu);font-size:15px}.cj-since b{font-size:22px;color:var(--ti)}
.cj-sum{padding:4px 14px}.cj-r{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--bd)}.cj-r:last-child{border:0}.cj-r span{display:grid;font-size:26px;color:var(--ti)}.cj-r b{flex:1;font-weight:500;font-size:17px}.cj-r em{font-style:normal;font-weight:800;font-size:18px}
.cj-r.tot{background:var(--sky-l);margin:0 -14px;padding:14px;border-radius:0 0 var(--r-l) var(--r-l)}.cj-r.tot b{font-weight:800;color:var(--ti)}
.cj-act{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#invv .cj-b{margin:0;display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 10px;font-size:17px;background:var(--tile);color:var(--ti);border:1px solid var(--bd);box-shadow:var(--sh1);border-radius:var(--r-l)}
#invv .cj-b.o{background:linear-gradient(180deg,#178036,#14702F);color:#fff;border-color:#1B8A3C}
.cj-b i{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;color:#fff;font-style:normal;background:#1b8a3c}.cj-b i.r{background:#e03a3a}
.cj-h{display:flex;align-items:center;gap:10px;margin:0;font-size:22px}
.cj-form{display:flex;flex-direction:column;gap:12px}.cj-form label{display:flex;flex-direction:column;gap:5px;font-weight:700;font-size:15px}.cj-two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.cj-in{display:flex;align-items:center;gap:10px;border:1.5px solid var(--bd);border-radius:var(--r-m);background:var(--pn);padding:0 12px;font-weight:400}.cj-in:focus-within{border-color:var(--sky);box-shadow:0 0 0 4px var(--sky-a)}.cj-in i{display:grid;color:var(--ti);font-style:normal}
.cj-in input,.cj-in select{flex:1;min-width:0;border:0!important;background:transparent!important;box-shadow:none!important;padding:12px 0;font-size:17px}
.cj-ex{display:flex;flex-direction:column;gap:8px}.cj-e{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--pn);border:1px solid var(--bd);border-radius:var(--r-m);padding:10px 14px}.cj-e b{display:block}.cj-e small{color:var(--mu)}.cj-e em{font-style:normal;font-weight:800}.cj-n{color:var(--mu);margin:0}
@media(min-width:960px){.cj{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.cj-act{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.cj-two{grid-template-columns:1fr}.cj-act{grid-template-columns:1fr 1fr}}
#invv .cj-b svg,#invv .cj-wide svg,.skd .sk-a svg{width:22px;height:22px;flex:none}
/* ======================================================================
   V48 · Diseño móvil + PC, PARTE 2: Compras, Documentos, Productos, Tablero
   ====================================================================== */
.cpx [hidden],.dcx [hidden],.px [hidden]{display:none!important}
.v48-c{background:var(--pn);border:1px solid var(--bd);border-radius:var(--r-l);box-shadow:var(--sh1);padding:14px;box-sizing:border-box}
.v48-in{display:flex;align-items:center;gap:10px;position:relative;background:var(--pn);border:1.5px solid var(--bd);border-radius:var(--r-m);padding:0 14px;box-shadow:var(--sh1);margin:0;font-weight:400}
.v48-in:focus-within{border-color:var(--sky);box-shadow:0 0 0 4px var(--sky-a)}
.v48-in>svg{font-size:22px;color:var(--ti);flex:none}
.v48-in input,.v48-in select{flex:1;min-width:0;width:100%;border:0!important;background:transparent!important;box-shadow:none!important;padding:13px 0;font-size:16px;color:var(--tx);font-weight:600}
.v48-in input::placeholder{color:var(--mu);font-weight:400}
#invv .v48-b{margin:0!important;display:flex;align-items:center;justify-content:center;gap:9px;padding:13px 16px;font-size:17px;border-radius:var(--r-m);width:100%;box-sizing:border-box}
#invv .v48-b svg{width:22px;height:22px;flex:none}
#invv .v48-b.w{background:var(--tile);color:var(--ti);border:1px solid var(--bd)}
.v48-p{display:inline-block;padding:3px 12px;border-radius:999px;font-weight:700;font-size:13px;background:#6b7885;color:#fff;white-space:nowrap}
.v48-p.ok{background:color-mix(in srgb,#1b8a3c 14%,var(--pn));color:var(--gt)}.v48-p.bad{background:color-mix(in srgb,#e03a3a 14%,var(--pn));color:var(--rt)}.v48-p.wn{background:color-mix(in srgb,#f5a524 22%,var(--pn));color:#8a5a00}
[data-theme=dark] .v48-p.wn{color:#ffd27a}
.v48-e{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:26px 14px;background:var(--pn);border:1px solid var(--bd);border-radius:var(--r-l);color:var(--mu)}.v48-e span{display:grid;place-items:center;width:60px;height:60px;border-radius:50%;background:var(--sky-l);font-size:30px;color:var(--sky-d)}

/* ---- Compras ---- */
.cpx{max-width:1180px;margin:0 auto;display:flex;flex-direction:column;gap:14px}
.cpx-t{margin:0;font-size:28px;color:var(--ti)}.cpx-t2{margin:6px 0 0;font-size:20px;color:var(--ti)}.cpx-t2 small{font-weight:500;color:var(--mu)}
.cpx-g{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-items:start}
.cpx-l,.cpx-r{display:flex;flex-direction:column;gap:12px;min-width:0}
.cpx-row{display:flex;gap:10px;align-items:stretch}.cpx-row .v48-in{flex:1;min-width:0}#invv .cpx-nw{width:auto;flex:none;padding:0 20px;font-weight:800}
.v48-f:focus-within,.v48-f{border-color:var(--sky)}
.cpx-sel{font-size:14.5px;color:var(--mu);padding:0 4px;min-height:1.2em}.cpx-sel b{color:var(--ti)}
.cpx-chk{display:flex;align-items:center;gap:12px;font-weight:700;color:var(--ti);font-size:17px;padding:2px 4px}.cpx-chk input{width:24px;height:24px;flex:none;accent-color:#1b8a3c}
.cpx-ls{display:flex;flex-direction:column;gap:10px}.cpx-ln{padding:12px 14px}.cpx-lh{display:flex;justify-content:space-between;align-items:center;gap:10px}.cpx-lh b{color:var(--ti);text-transform:uppercase;font-size:15px}
#invv .cpx-rm{margin:0!important;width:38px;height:38px;padding:0;display:grid;place-items:center;color:var(--rt);flex:none}
.cpx-lg{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:8px;align-items:end}.cpx-lg label{display:flex;flex-direction:column;gap:3px;font-size:13px;color:var(--mu);font-weight:700}.cpx-lg input{padding:9px 10px;font-size:16px;width:100%;box-sizing:border-box}
.cpx-lt small{display:block;color:var(--mu);font-size:13px;font-weight:700}.cpx-lt b{font-size:18px;color:var(--ti)}
.cpx-tot small{display:block;font-weight:700;color:var(--ti);font-size:16px}.cpx-tot b{font-size:30px;color:var(--ti)}
.cpx-hl{display:grid;grid-template-columns:1fr;gap:10px}.cpx-h{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.cpx-hm{display:flex;flex-direction:column;gap:3px;min-width:0}.cpx-hm b{color:var(--ti);text-transform:uppercase}.cpx-hm small,.cpx-hv small{color:var(--mu);display:flex;gap:5px;align-items:center}
.cpx-hv{display:flex;flex-direction:column;align-items:flex-end;gap:5px;text-align:right}.cpx-hv>b{font-size:19px;color:var(--ti)}
#invv .cpx-pg{margin:0!important;padding:7px 14px;font-size:14px}
@media(min-width:960px){.cpx-g{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px}.cpx-hl{grid-template-columns:1fr 1fr}.cpx-r{position:sticky;top:8px}}

/* ---- Documentos ---- */
.dcx{max-width:1180px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
.dcx-top{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;align-items:start}
.dcx .dsr,.dcx .mrx{display:flex;flex-direction:column;gap:10px;margin:0;padding:14px}
.dcx .dsr h3,.dcx .mrx h3{margin:0;font-size:20px;color:var(--ti)}
.dcx-bt{display:grid;grid-template-columns:1fr 1fr;gap:10px}.dcx-bt .v48-b{width:100%;padding:12px 8px}
#invv .mrx{display:flex!important}
.mrx-t{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
#invv .mrx button{margin:0!important}
#invv .mrx-t button,#invv .mrx-s button{display:flex;align-items:center;justify-content:center;gap:7px;padding:10px 4px;font-size:15px;border-radius:var(--r-m);background:var(--tile);color:var(--tx);border:1px solid var(--bd);box-shadow:var(--sh1);min-height:44px}
#invv .mrx-t button svg{font-size:20px;color:var(--ti)}
#invv .mrx button.on{background:linear-gradient(180deg,#178036,#14702F);color:#fff;border-color:#1B8A3C}#invv .mrx button.on svg{color:#fff}
.mrx-r{display:grid;grid-template-columns:76px minmax(0,1fr);gap:10px;align-items:center}.mrx-r>span{color:var(--ti);font-weight:600}.mrx-s{display:grid;grid-template-columns:1fr 1fr;gap:8px}
#invv .mrx .mrgo{margin-top:2px!important;min-height:48px}
.dcx-chips{display:flex;flex-wrap:wrap;gap:8px}
#invv .dcx-chips button{margin:0!important;padding:10px 18px;font-size:15px;background:var(--tile);color:var(--ti);border:1px solid var(--bd);box-shadow:var(--sh1);border-radius:var(--r-m)}
#invv .dcx-chips button.on{background:linear-gradient(180deg,#178036,#14702F);color:#fff;border-color:#1B8A3C}
.dcx-sum{display:flex;flex-direction:column;gap:10px;padding:12px 14px;background:linear-gradient(135deg,var(--sky-l),var(--pn))}
.dcx-s1{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.dcx-ic{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--pn);border:1px solid var(--bd);font-size:26px;color:var(--ti)}
.dcx-s1 small{font-size:17px;font-weight:700;color:var(--ti)}.dcx-s1 b{font-size:clamp(26px,5vw,34px);color:var(--ti);margin-left:6px}
.dcx-s2{display:flex;align-items:center;gap:8px;background:var(--pn);border:1px solid var(--bd);border-radius:var(--r-m);padding:9px 12px;color:var(--mu);font-size:15px}.dcx-s2 svg{font-size:20px;color:var(--sky-d)}
.dcx-lh{display:flex;align-items:center;justify-content:space-between}.dcx-lh h3{margin:0;display:flex;align-items:center;gap:10px;font-size:21px;color:var(--ti)}.dcx-lh h3 span{display:grid;font-size:26px}
.dcx-cnt{background:var(--sky-l);color:var(--bt);font-weight:800;padding:4px 14px;border-radius:999px}
.dcx-list{display:grid;grid-template-columns:1fr;gap:10px}
.dcx-s{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px}
.dcx-s.off{opacity:.65}.dcx-s.off .dcx-sh b{text-decoration:line-through}
.dcx-sm{display:flex;flex-direction:column;gap:4px;min-width:0}.dcx-sh{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dcx-sh b{font-size:18px;color:var(--ti)}
.dcx-sm small{display:flex;align-items:center;gap:6px;color:var(--mu);font-size:13.5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dcx-sm small svg{flex:none;font-size:16px}
.dcx-sv{display:grid;grid-template-columns:auto 1fr;gap:3px 12px;align-items:center;border-left:1px solid var(--bd);padding-left:12px;font-size:14px}.dcx-sv span{color:var(--mu)}.dcx-sv b{font-size:15.5px}.dcx-sv em{font-style:normal;justify-self:start}
.dcx-sa{display:flex;flex-direction:column;gap:8px;border-left:1px solid var(--bd);padding-left:10px}
#invv .dcx-sa .ib{margin:0!important;width:44px;height:44px;padding:0;display:grid;place-items:center;font-size:22px;color:var(--ti)}
.dcx-ac{display:none;grid-column:1/-1;gap:8px;flex-wrap:wrap;border-top:1px dashed var(--bd);padding-top:10px}.dcx-s.open .dcx-ac{display:flex}#invv .dcx-ac button{margin:0!important;padding:9px 16px}
.dcx-top5 h3{margin:0 0 8px;color:var(--ti)}.dcx-top5 table{width:100%}
@media(min-width:900px){.dcx-top{grid-template-columns:1fr 1fr}.dcx-list{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.dcx-s{grid-template-columns:minmax(0,1fr) auto;row-gap:8px}.dcx-sm{grid-column:1}.dcx-sa{grid-column:2;grid-row:1/3;flex-direction:column}.dcx-sv{grid-column:1;border-left:0;border-top:1px dashed var(--bd);padding:8px 0 0}.mrx-r{grid-template-columns:62px minmax(0,1fr)}}

/* ---- Productos ---- */
.px{max-width:1180px;margin:0 auto;display:flex;flex-direction:column;gap:12px;padding-bottom:96px}
.px-tb{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
#invv .px-t{margin:0!important;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:12px 4px;min-height:78px;font-size:13.5px;line-height:1.15;text-align:center;background:var(--tile);color:var(--tx);border:1px solid var(--bd);box-shadow:var(--sh1);border-radius:var(--r-l);font-weight:600}
#invv .px-t svg{font-size:30px;color:var(--ti)}#invv .px-t:first-child svg{color:#f26a0f}
.px-cw{display:flex;align-items:center;gap:8px;min-width:0}
.px-cats{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;flex:1;min-width:0;padding:2px}.px-cats::-webkit-scrollbar{display:none}
#invv .px-cats button{margin:0!important;flex:none;display:flex;align-items:center;gap:8px;padding:11px 18px;border-radius:999px;background:var(--tile);color:var(--tx);border:1px solid var(--bd);box-shadow:var(--sh1);font-size:16px;font-weight:600;white-space:nowrap}
#invv .px-cats button em{font-style:normal;background:var(--sky-l);color:var(--bt);border-radius:999px;padding:1px 12px;font-size:14px;font-weight:700}
#invv .px-cats button.on{background:linear-gradient(180deg,#D44A07,#B33A0A);color:#fff;border-color:#f26a0f}#invv .px-cats button.on em{background:rgba(0,0,0,.25);color:#fff}
#invv .px-nx{margin:0!important;flex:none;width:44px;height:44px;padding:0;display:grid;place-items:center;background:var(--tile);color:var(--ti);border:1px solid var(--bd);border-radius:50%;box-shadow:var(--sh1);font-size:22px}
.px-scan{display:none!important}
@media(pointer:coarse),(max-width:800px){#invv .px-scan{display:flex!important;align-items:center;justify-content:center;gap:10px;margin:0!important;min-height:48px;padding:0 16px;width:100%;font-size:15px;font-weight:700;background:var(--sky-l);color:var(--ti);border:1.5px solid var(--sky);border-radius:var(--r-m);box-shadow:none}#invv .px-scan svg{font-size:24px;flex:none}}
.px-s{display:flex;gap:10px;align-items:stretch}.px-s .v48-in{flex:1;min-width:0}
#invv .px-fb{margin:0!important;width:52px;flex:none;padding:0;display:grid;place-items:center;font-size:24px;color:var(--ti);border-radius:var(--r-m)}
.px-pn{display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--pn);border:1px solid var(--bd);border-radius:var(--r-l);padding:10px 12px}.px-pn b{color:var(--ti);margin-right:4px}
#invv .px-pn button{margin:0!important;padding:8px 14px;border-radius:999px;background:var(--tile);color:var(--tx);border:1px solid var(--bd);box-shadow:none;font-size:14px}#invv .px-pn button.on{background:var(--sel);color:var(--bt);border-color:var(--sky)}
.px-n{display:flex;align-items:center;justify-content:space-between;background:var(--pn);border:1px solid var(--bd);border-radius:var(--r-l);padding:8px 8px 8px 16px;box-shadow:var(--sh1);font-weight:700;color:var(--ti);font-size:17px}.px-n b{color:var(--bt);font-size:22px;margin-left:4px}
#invv .px-sb{margin:0!important;width:48px;height:42px;padding:0;display:grid;place-items:center;font-size:24px;background:var(--sky-l);color:var(--ti);border-radius:var(--r-m);box-shadow:none;border:0}
.px-l{display:grid;grid-template-columns:1fr;gap:10px}
.px-c{background:var(--pn);border:1px solid var(--bd);border-radius:var(--r-l);box-shadow:var(--sh1);cursor:pointer;transition:border-color 140ms,box-shadow 140ms;overflow:hidden}.px-c.sel{border-color:var(--sky);box-shadow:0 0 0 3px var(--sky-a)}
.px-m{display:flex;align-items:center;gap:12px;padding:12px}
.px-th{display:grid;place-items:center;flex:none;width:76px;height:76px;border-radius:var(--r-m);background:var(--sky-l);color:var(--sky-d);font-size:34px;overflow:hidden}.px-th img{width:100%;height:100%;object-fit:cover}
.px-i{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px;align-items:flex-start}.px-i b{font-size:16px;color:var(--ti);text-transform:uppercase;line-height:1.2;overflow-wrap:anywhere}.px-i small{color:var(--mu);font-size:14px}
.px-b{padding:3px 14px;border-radius:999px;font-weight:800;font-size:14px;margin-top:2px;background:#e6edf3;color:#34495e}.px-b.sg{background:color-mix(in srgb,#1b8a3c 16%,var(--pn));color:var(--gt)}.px-b.sb{background:color-mix(in srgb,#1f8fe0 16%,var(--pn));color:var(--bt)}.px-b.sz{background:color-mix(in srgb,#e03a3a 16%,var(--pn));color:var(--rt)}
.px-p{flex:none;display:flex;flex-direction:column;gap:1px;border-left:1px solid var(--bd);padding-left:12px;min-width:92px}.px-p span{color:var(--mu);font-size:13.5px}.px-p b{font-size:17px;color:var(--ti)}.px-p b.o{color:#f26a0f}.px-p hr{width:100%;border:0;border-top:1px solid var(--bd);margin:4px 0}
.px-a{flex:none;display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--ti)}.px-a>i{display:grid;font-size:20px;font-style:normal;transition:transform 160ms var(--ease-out)}.px-c.open .px-a>i{transform:rotate(90deg)}
#invv .px-a .ib{margin:0!important;width:44px;height:40px;padding:0;display:grid;place-items:center;font-size:22px;color:var(--ti);border-radius:var(--r-m)}
.px-x{display:none;border-top:1px dashed var(--bd);padding:10px 12px;gap:10px;flex-wrap:wrap;align-items:center;justify-content:space-between}.px-c.open .px-x{display:flex}.px-x small{display:flex;align-items:center;gap:6px;color:var(--mu)}.px-x div{display:flex;gap:8px;flex-wrap:wrap}
#invv .px-x button{margin:0!important;padding:8px 14px;font-size:14px}#invv .px-x button.bd{color:var(--rt)}
.px-more{text-align:center;color:var(--mu);grid-column:1/-1}
.px-vt{position:sticky;bottom:0;z-index:6;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:10px 78px 8px 10px;margin-top:4px;background:var(--pn);border:1px solid var(--bd);border-radius:var(--r-l);box-shadow:var(--sh2)}
.px-vi{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--r-m);min-width:0}.px-vi i{display:grid;font-size:24px;font-style:normal;flex:none}.px-vi span{display:flex;flex-direction:column;font-size:12.5px;min-width:0}.px-vi b{font-size:clamp(14px,2.4vw,19px);white-space:nowrap}
.px-vi.c{background:var(--sky-l);color:var(--bt)}.px-vi.p{background:color-mix(in srgb,#1b8a3c 14%,var(--pn));color:var(--gt)}.px-vi.g{background:color-mix(in srgb,#f26a0f 14%,var(--pn));color:#c2540a}
[data-theme=dark] .px-vi.g{color:#ffb27a}
.px-vt>small{grid-column:1/-1;text-align:center;color:var(--mu)}
#invv .px-fab{position:absolute;right:10px;top:12px;margin:0!important;width:58px;height:58px;padding:0;border-radius:50%;display:grid;place-items:center;font-size:30px;background:linear-gradient(180deg,#D44A07,#B33A0A);box-shadow:0 8px 18px -6px rgba(242,106,15,.7)}
@media(min-width:900px){.px-l{grid-template-columns:repeat(2,minmax(0,1fr))}.px-tb{max-width:760px}.px-vt{padding-right:84px}}
@media(min-width:1200px){.px-l{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:560px){.px-tb{grid-template-columns:repeat(3,minmax(0,1fr))}.px-th{width:62px;height:62px}.px-p{min-width:84px;padding-left:9px}.px-i b{font-size:14.5px}.px-m{gap:9px;padding:10px}.px-vt{grid-template-columns:1fr;padding:8px 74px 6px 8px;gap:4px}.px-vi{padding:5px 8px}.px-vt{grid-template-columns:repeat(3,minmax(0,1fr))}.px-vi i{display:none}.px-vi span{font-size:11.5px}}

/* ---- Tablero ---- */
.tbx{gap:12px}
.tbx .cd{padding:14px}.tbx .cd h2{display:flex;align-items:center;gap:12px;margin:0 0 10px;font-size:20px;font-weight:700;color:var(--ti)}
.tbx-ic{display:grid;place-items:center;font-style:normal;font-size:28px;color:var(--sky-d)}.tbx-n{margin-left:auto;font-style:normal;font-size:14px;font-weight:700;background:var(--sky-l);color:var(--bt);padding:3px 12px;border-radius:999px}
.tbx .hug{font-size:clamp(36px,8vw,52px);font-weight:800;color:var(--sky-d);margin:2px 0 8px}.tbx-bm{font-size:24px;font-weight:800;color:var(--ti);margin-top:2px}.tbx-bv{font-size:22px;color:var(--ti)}
.tbx-t{width:100%;border-collapse:collapse}.tbx-t th{background:var(--sky-l);color:var(--bt);text-align:left;padding:9px 12px}.tbx-t th:last-child,.tbx-t td:last-child{text-align:right}.tbx-t td{padding:9px 12px;border-bottom:1px solid var(--bd);font-size:15px}
.tbx-e{color:var(--mu);text-align:center;padding:14px 0;margin:0}
.tbm{display:flex;gap:6px;align-items:flex-end}.tbm-c{flex:1;min-width:0;display:flex;flex-direction:column;align-items:stretch;gap:4px}.tbm-a{height:130px;display:flex;align-items:flex-end}
.tbm-b{width:100%;border-radius:6px 6px 0 0;color:#fff;font-size:12px;font-weight:700;text-align:center;padding-top:3px;box-sizing:border-box;min-height:20px}.tbm-b span{display:block;overflow:hidden}
.tbm-c>i{display:block;height:5px;border-radius:3px}.tbm-l{text-align:center;font-size:13px;color:var(--tx)}
.tbh{display:flex;gap:6px;align-items:flex-end}.tbh-c{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px;align-items:stretch}.tbh-b{border-radius:6px;color:#fff;font-weight:800;text-align:center;padding-top:5px;box-sizing:border-box}.tbh-c>span{text-align:center;font-size:14px}
.tbx .tvh2{display:flex;align-items:center;gap:12px;margin:0 0 10px;font-size:20px;font-weight:700;color:var(--ti)}
.tbx .tvp{display:flex;gap:8px;margin-bottom:10px}
#invv .tvp button{margin:0!important;padding:9px 26px;border-radius:var(--r-m);background:var(--tile);color:var(--ti);border:1px solid var(--bd);box-shadow:var(--sh1);font-size:15px}
#invv .tvp button.on{background:linear-gradient(180deg,#178036,#14702F);color:#fff;border-color:#1B8A3C}
.tbx .tvw{display:flex;align-items:center;gap:14px;background:linear-gradient(135deg,#0A78BD,#0A5C96);color:#fff;border-radius:var(--r-l);padding:14px 16px;margin:6px 0 10px;font-size:18px;font-weight:800;box-shadow:var(--sh2)}.tbx .tvw small{display:block;font-weight:500;font-size:14.5px;opacity:.95}
.tvw-i{display:grid;font-size:50px;color:#ffd84a;flex:none}
.tbx .tvs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--mu);margin:6px 0 10px}.tbx .tvs svg{font-size:22px;color:#e0a000}.tbx .tvs b{color:var(--ti)}
.tvm{display:none}.tvm table{width:100%;border-collapse:collapse;background:var(--pn);border:1px solid var(--bd);border-radius:var(--r-m);overflow:hidden}
.tvm th,.tvm td{padding:9px 10px;text-align:left;border-bottom:1px solid var(--bd);font-size:14.5px;vertical-align:top}.tvm tr:first-child th{background:var(--sky-l);color:var(--ti)}.tvm th:first-child{font-weight:700;color:var(--ti);white-space:nowrap}.tvm td small{display:block;color:var(--mu);font-size:12.5px}.tvm td{text-align:right}.tvm tr:first-child th:not(:first-child){text-align:right}.tvm .tvn{color:var(--bt);font-weight:700}
@media(max-width:700px){.tvd{display:none}.tvm{display:block;overflow-x:auto}.tbx .cd h2{font-size:19px}}
@media(max-width:480px){#invv .cpx-nw{padding:0 14px}.cpx .v48-in input,.dcx .v48-in input,.px .v48-in input{font-size:15px}.v48-in{padding:0 12px;gap:8px}}

.px-tb{grid-template-columns:repeat(6,minmax(0,1fr))!important}
#invv .px-cats button.px-cg{border-style:dashed;color:var(--bt)}
@media(max-width:560px){#invv .px-t{min-height:70px;padding:10px 2px;font-size:11.5px;gap:4px;border-radius:var(--r-m)}#invv .px-t svg{font-size:26px}
.px-vt{padding:10px!important;margin-top:46px}.px-vi b{font-size:13.5px}.px-vi span{font-size:11px}}
#invv .px-fab{top:-66px;right:4px;width:54px;height:54px}
@media(min-width:900px){#invv .px-fab{top:-70px}.px-vt{padding-right:10px!important;margin-top:52px}}
.tbm-b{position:relative}.tbm-b span{position:absolute;top:-19px;left:50%;transform:translateX(-50%);white-space:nowrap;color:var(--ti);font-size:12px;overflow:visible}.tbm-a{padding-top:20px;box-sizing:border-box;height:150px}
@media(min-width:900px){.px-l{grid-template-columns:repeat(auto-fill,minmax(420px,1fr))!important}}
.px-i{flex:1 1 130px!important;min-width:120px}.px-i b{overflow-wrap:break-word;word-break:normal}.px-vi span{align-items:flex-start;text-align:left}
.tbx .tvw,.tbx .tvw small{color:#fff!important}
.dcx-sv em{font-size:11.5px;padding:3px 9px}.dcx-sv{padding-left:10px;gap:3px 8px}.dcx-s{grid-template-columns:minmax(0,1fr) minmax(0,.95fr) auto}

/* ---- V53 · Tablero rediseñado (KPI, mensuales, totales, top productos, ventas por hora) ---- */
.tbx.dg{grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}
.tbx>.c3{grid-column:1/-1}
.tbx .tbc{border:1px solid color-mix(in srgb,var(--bd) 35%,transparent);border-radius:20px;background:var(--pn);padding:18px 20px;box-shadow:0 1px 2px rgba(11,70,120,.06),0 10px 26px -14px rgba(11,70,120,.28)}
.tbx .tbc h2{display:flex;align-items:center;gap:14px;margin:0 0 12px;font-size:23px;font-weight:700;color:var(--ti)}
.tbi{display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:50%;background:var(--sky-l);color:var(--sky-d);font-size:25px;font-style:normal}
.tbk{grid-column:span 3;display:flex;flex-direction:column;gap:6px;min-width:0}
.tbk-h{display:flex;align-items:center;gap:12px;min-width:0}.tbk-h b{font-size:18px;font-weight:700;color:var(--ti);line-height:1.15}
.tbk-v{font-size:clamp(26px,2.6vw,38px);font-weight:800;color:var(--bt);line-height:1.1;margin-top:6px;font-variant-numeric:tabular-nums;white-space:nowrap}
.tbk small{color:var(--mu);font-size:15px}
.tbk-g .tbi{background:#dff5e8;color:#1B8A3C}.tbk-g .tbk-h b{color:var(--gt)}.tbk-p .tbi{background:#ece9fb;color:#5b45d6}
[data-theme=dark] .tbk-g .tbi{background:#12351f;color:#6FE08A}[data-theme=dark] .tbk-p .tbi{background:#272150;color:#b3a6ff}
.tbc-m{grid-column:span 8}.tbc-t{grid-column:span 4;display:flex;flex-direction:column}.tbc-p{grid-column:span 6}.tbc-h{grid-column:span 6}
/* mensuales */
.tbm2{position:relative;padding-top:24px;--ah:190px}
.tbm2-g{position:absolute;left:0;right:0;top:24px;height:var(--ah);display:flex;flex-direction:column;justify-content:space-between;pointer-events:none}
.tbm2-g i{display:block;border-top:1px solid color-mix(in srgb,var(--bd) 30%,transparent)}
.tbm2-row{position:relative;display:flex;gap:10px;align-items:flex-end}
.tbm2-c{flex:1;min-width:0;display:flex;flex-direction:column;gap:7px;align-items:stretch}
.tbm2-a{position:relative;height:var(--ah);display:flex;align-items:flex-end}
.tbm2-b{width:100%;border-radius:9px 9px 3px 3px;transform-origin:50% 100%;animation:tbGrow .8s cubic-bezier(.22,1,.36,1) calc(var(--i)*55ms) both;transition:filter .2s ease-out}
.tbm2-c:hover .tbm2-b{filter:brightness(1.1)}
.tbm2-v{position:absolute;left:-6px;right:-6px;text-align:center;font-style:normal;font-weight:600;font-size:15px;color:var(--ti);white-space:nowrap;animation:tbFade .45s ease-out calc(var(--i)*55ms + 420ms) both}
.tbm2-l{display:block;height:6px;border-radius:4px}
.tbm2-c>span{text-align:center;font-size:15px;color:var(--tx)}
/* totales */
.tbt-in{background:var(--sky-l);border-radius:16px;padding:18px 20px;flex:1}
.tbc-t .hug{font-size:clamp(34px,3.3vw,50px);margin:2px 0 16px;color:var(--bt);white-space:nowrap}
.tbc-t small{color:var(--mu);font-size:18px}
.tbc-t .tbx-bm{font-size:28px;margin-top:4px}.tbc-t .tbx-bv{font-size:26px;font-weight:700;color:var(--ti)}
/* top productos */
.tbp-h,.tbp-r{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:10px;padding:0 14px}
.tbp-h{background:var(--sky-l);color:var(--bt);font-size:17px;border-radius:8px;height:44px}.tbp-h span:first-child{text-align:center}.tbp-h span:last-child{text-align:right}
.tbp-r{min-height:52px;border-bottom:1px solid color-mix(in srgb,var(--bd) 30%,transparent);font-size:16px;color:var(--ti)}.tbp-r:last-child{border-bottom:0}
.tbp-r b{font-weight:500;text-align:right;font-variant-numeric:tabular-nums}.tbp-r.t1 .tbp-t,.tbp-r.t1 b{font-weight:700;color:var(--bt)}
.tbp-t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tbp-n{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--sky-l);color:var(--bt);font-weight:600;font-size:15px;justify-self:center}.tbp-r.t1 .tbp-n{background:var(--bt);color:#fff}
/* Tema oscuro: rellenos con texto blanco deben ser lo bastante oscuros (AA) */
[data-theme=dark] .tbp-r.t1 .tbp-n{color:#04203A}
[data-theme=dark] .row.sel,[data-theme=dark] #sb button.on,[data-theme=dark] .tree button.on,[data-theme=dark] tr.sel td,[data-theme=dark] .acl div:hover,[data-theme=dark] .acl div.on{background:#0F6FAE;color:#fff}
[data-theme=dark] .pmb.on{background:#178036;border-color:#178036;color:#fff}
[data-theme=dark] .k.red,[data-theme=dark] .badge{background:#C73434;border-color:#C73434;color:#fff}
.tbc-p .tbx-e{padding:18px 0}
/* ventas por hora */
.tbc-h .tbx-n{margin-left:auto;display:inline-flex;align-items:center;font-size:17px;font-weight:600;background:var(--sky-l);color:var(--bt);padding:9px 20px;border-radius:999px}
.tbh2{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;--ph:190px;padding-top:6px}
.tbh2-y{position:relative;height:var(--ph);min-width:24px;font-size:15px;color:var(--ti)}.tbh2-y span{position:absolute;right:0;bottom:calc(var(--p)*1%);transform:translateY(50%);line-height:1}
.tbh2-p{position:relative;height:var(--ph)}.tbh2-g i{position:absolute;left:0;right:0;bottom:calc(var(--p)*1%);border-top:1px solid color-mix(in srgb,var(--bd) 35%,transparent)}
.tbh2-bars{position:absolute;inset:0;display:flex;gap:8px;align-items:flex-end;padding:0 4px}
.tbh2-c{flex:1;min-width:0;height:100%;display:flex;align-items:flex-end}
.tbh2-b{width:100%;border-radius:6px 6px 0 0;background:linear-gradient(180deg,#1688D0,#0A6AA6);color:#fff;font-weight:800;transform-origin:50% 100%;animation:tbGrow .7s cubic-bezier(.22,1,.36,1) calc(var(--i)*45ms) both;transition:filter .2s ease-out}
.tbh2-b.tbpk{background:linear-gradient(180deg,#0A6AA6,#08508A)}[data-theme=dark] .tbh2-b{background:linear-gradient(180deg,#5CCBFA,#2AA7EA);color:#04203A}[data-theme=dark] .tbh2-b.tbpk{background:linear-gradient(180deg,#9BE3FF,#4FC3F7);color:#04203A}
.tbh2-c:hover .tbh2-b{filter:brightness(1.1)}
.tbh2-x{grid-column:2;display:flex;gap:8px;padding:8px 4px 0}.tbh2-x span{flex:1;min-width:0;text-align:center;font-size:15px;color:var(--ti)}
@keyframes tbGrow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes tbFade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@keyframes tbPulse{0%,100%{filter:brightness(1)}50%{filter:brightness(1.16)}}
.tbm2-b.tbpk,.tbh2-b.tbpk{animation:tbGrow .8s cubic-bezier(.22,1,.36,1) calc(var(--i)*55ms) both,tbPulse 3.2s ease-in-out 1.4s infinite}
@media(prefers-reduced-motion:reduce){.tbm2-b,.tbm2-v,.tbh2-b,.tbm2-b.tbpk,.tbh2-b.tbpk{animation:none!important}}
@media(max-width:1100px){.tbk{grid-column:span 6}.tbc-m,.tbc-t,.tbc-p,.tbc-h{grid-column:1/-1}}
@media(max-width:800px){.tbx.dg{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tbk{grid-column:span 1}.tbx .tbc{padding:12px 14px;border-radius:16px}
.tbx .tbc h2{font-size:16px;gap:9px;margin-bottom:8px}.tbi{width:34px;height:34px;font-size:18px}
.tbk{gap:3px}.tbk-h{gap:8px}.tbk-h b{font-size:12.5px}.tbk-v{font-size:clamp(17px,5.2vw,21px);margin-top:4px}.tbk small{font-size:11px}
.tbm2{--ah:120px;padding-top:20px}.tbm2-g{top:20px}.tbm2-row{gap:3px}.tbm2-v{font-size:10.5px;left:-4px;right:-4px}.tbm2-c>span{font-size:10.5px}.tbm2-l{height:4px}.tbm2-b{border-radius:5px 5px 2px 2px}
.tbt-in{padding:12px 14px;border-radius:12px}.tbc-t .hug{font-size:30px;margin-bottom:10px}.tbc-t small{font-size:12px}.tbc-t .tbx-bm{font-size:17px}.tbc-t .tbx-bv{font-size:16px}
.tbp-h,.tbp-r{grid-template-columns:30px minmax(0,1fr) auto;padding:0 8px;gap:8px}.tbp-h{height:32px;font-size:12px}.tbp-r{min-height:38px;font-size:12.5px}.tbp-n{width:22px;height:22px;font-size:11px}
.tbc-h .tbx-n{font-size:11.5px;padding:5px 12px}
.tbh2{--ph:120px;column-gap:6px}.tbh2-y{font-size:10px;min-width:16px}.tbh2-bars{gap:3px;padding:0 2px}.tbh2-x{gap:3px;padding:6px 2px 0}.tbh2-x span{font-size:9px;letter-spacing:-.3px}.tbh2-b{border-radius:3px 3px 0 0}}

/* ---- V54 · Importar productos desde Excel ---- */
.px-tb{grid-template-columns:repeat(7,minmax(0,1fr))!important}
.px-imp svg{transform:rotate(180deg)}
@media(max-width:560px){.px-tb{grid-template-columns:repeat(4,minmax(0,1fr))!important}}
.imd{width:min(560px,96vw)}
.imp-ic svg{transform:rotate(180deg)}
.imp-ol{margin:0;padding:0 0 0 22px;display:flex;flex-direction:column;gap:8px;color:var(--ti);font-size:16px;line-height:1.35}
.imp-a{display:grid;grid-template-columns:1fr 1fr;gap:10px}.imp-a button,.imd .imp-o{margin:0;display:flex;align-items:center;justify-content:center;gap:8px;padding:13px 10px;font-size:16px}.imp-a svg{width:20px;height:20px;flex:none}
.imd .imp-o{width:100%}
.imp-m{margin:0;padding:10px 12px;border-radius:var(--r-m);background:#fdecec;color:#a02020;font-size:15px}[data-theme=dark] .imp-m{background:#3a1a1a;color:#ff9a9a}
.imp-ch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.imp-ch span{border-radius:var(--r-l);padding:10px 6px;text-align:center;font-size:14px;color:var(--mu);background:var(--sky-l)}.imp-ch b{display:block;font-size:28px;line-height:1.1}
.imp-ch .g{background:#dff5e8;color:#14702F}.imp-ch .r{background:#fdecec;color:#a02020}.imp-ch .b{color:var(--bt)}
[data-theme=dark] .imp-ch .g{background:#12351f;color:#6FE08A}[data-theme=dark] .imp-ch .r{background:#3a1a1a;color:#ff9a9a}
.imp-ck{display:flex;gap:10px;align-items:flex-start;font-size:15px;color:var(--ti);padding:10px 12px;border:1px solid var(--bd);border-radius:var(--r-m)}.imp-ck input{width:20px;height:20px;margin:2px 0 0;flex:none}
.imp-er{max-height:200px;overflow:auto;border:1px solid var(--bd);border-radius:var(--r-m);padding:8px 12px;font-size:14px}.imp-er b{display:block;margin-bottom:4px;color:var(--rt)}.imp-er p{margin:3px 0;color:var(--tx)}
.imp-pb{height:14px;border-radius:999px;background:var(--sky-l);overflow:hidden}.imp-pb i{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,#27B3F0,#0B7BBF);transition:width .25s ease-out}
.imp-pt{margin:0;text-align:center;color:var(--ti);font-weight:600}
#imp_go[disabled]{opacity:.5}
.imd .sk-a button span{white-space:nowrap}


/* ======================================================================
   TEMAS DE COLOR · V57 — Claro y Oscuro ya existían; se suman Azul y Naranja.
   Se activan con <html data-theme="azul|naranja">. Claro/Oscuro no cambian.
   Los colores de significado (stock verde/azul/rojo, Efectivo verde, Tarjeta azul,
   Anular rojo) se mantienen iguales en todos los temas.
   ====================================================================== */
[data-theme=azul]{
 --bg:#F1F7FD;--pn:#fff;--tx:#0B2542;--mu:#4F677D;--bd:#C9DDEE;--tile:#fff;
 --sky:#1FA9EA;--sky-d:#0B6CC4;--sky-l:#E6F3FD;--sky-a:rgba(31,169,234,.24);--sel:#D8ECFB;
 --ink:#0B2542;--ink2:#123760;--ti:#0F4C85;--bc0:#0b6cc4;
 --blue:#0B6CC4;--bt:#0A5EA8;--o:#C2410C;
 --t-hd1:#0F5AA6;--t-hd2:#0A4A8E;--t-hdtx:#E6F3FD;
 --t-b1:#1271CC;--t-b2:#0A5CAE;--t-p1:#1A86E0;--t-p2:#0A5CAE;--t-pb:#3AA6F2;
 --t-s1:#0F5AA6;--t-s2:#0A3F78;--t-on1:#1271CC;--t-on2:#0A5CAE;--t-si:#8FD0F8;--t-st:#D6EEFC;
 --t-glow:31,169,234;--t-sh:11,37,66;
 --t-tot-bg:#E6F3FD;--t-tot-bd:#1FA9EA;--t-tot-lb:#0A5EA8;--t-tot-tx:#0B2542;
 --t-bar1:#2A9AE6;--t-bar2:#0A5CAE;
 --sh1:0 1px 2px rgba(11,37,66,.06),0 4px 14px -6px rgba(11,37,66,.14);
 --sh2:0 2px 4px rgba(11,37,66,.08),0 14px 32px -12px rgba(11,37,66,.28)}
[data-theme=naranja]{
 --bg:#FFF7F0;--pn:#fff;--tx:#2B1708;--mu:#6B5444;--bd:#EBD8C9;--tile:#fff;
 --sky:#F26A0F;--sky-d:#C2410C;--sky-l:#FFF1E5;--sky-a:rgba(242,106,15,.24);--sel:#FFE8D3;
 --ink:#2B1708;--ink2:#4A2A12;--ti:#7A3410;--bc0:#c2410c;
 --blue:#C2410C;--bt:#B83C06;--o:#C2410C;
 --t-hd1:#fff;--t-hd2:#fff;--t-hdtx:#7A3410;
 --t-b1:#D04C08;--t-b2:#B83C06;--t-p1:#D9540A;--t-p2:#B33A0A;--t-pb:#F26A0F;
 --t-s1:#4A2310;--t-s2:#2B1508;--t-on1:#D9540A;--t-on2:#B83C06;--t-si:#FFB27A;--t-st:#FDE6D3;
 --t-glow:242,106,15;--t-sh:94,45,10;
 --t-tot-bg:#FFF1E5;--t-tot-bd:#F26A0F;--t-tot-lb:#9A3412;--t-tot-tx:#2B1708;
 --t-bar1:#F58A3C;--t-bar2:#C2410C;
 --sh1:0 1px 2px rgba(94,45,10,.06),0 4px 14px -6px rgba(94,45,10,.16);
 --sh2:0 2px 4px rgba(94,45,10,.08),0 14px 32px -12px rgba(94,45,10,.3)}

:is([data-theme=azul],[data-theme=naranja]) body,
:is([data-theme=azul],[data-theme=naranja]) #app{background:radial-gradient(1200px 500px at 85% -10%,rgba(var(--t-glow),.14),transparent 60%),var(--bg)}

/* botones principales (especificidad cero para no pisar teclas, listas, etc.) */
:where([data-theme=azul],[data-theme=naranja]) button{background:linear-gradient(180deg,var(--t-b1),var(--t-b2));box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 1px 2px rgba(var(--t-sh),.25),0 6px 14px -8px rgba(var(--t-glow),.7)}

/* cabecera */
:is([data-theme=azul],[data-theme=naranja]) header{background:linear-gradient(180deg,var(--t-hd1),var(--t-hd2));box-shadow:0 6px 18px -10px rgba(var(--t-sh),.7)}
:is([data-theme=azul],[data-theme=naranja]) header .ib{color:var(--t-hdtx)}
:is([data-theme=azul],[data-theme=naranja]) #me{color:var(--t-hdtx)}
[data-theme=azul] header .ib{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.28);box-shadow:none}
[data-theme=azul] header .ib:hover{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.4)}
[data-theme=azul] header #q{border-color:rgba(255,255,255,.0)}
[data-theme=azul] header #q:focus{border-color:var(--sky);box-shadow:0 0 0 4px rgba(255,255,255,.35)}
[data-theme=naranja] header{border-bottom:1px solid #F3DECF;box-shadow:0 4px 14px -10px rgba(94,45,10,.35)}
[data-theme=naranja] header .ib{background:#FFF3E8;border:1px solid #F3D9C6;box-shadow:none}
[data-theme=naranja] header .ib:hover{background:#FFE6D1;border-color:#F26A0F;color:#9A3412}
[data-theme=naranja] header #q{background-color:#fff;color:#2B1708;border:2px solid #F26A0F;padding-top:10px;padding-bottom:10px;
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F26A0F' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='M15.5 15.5L21 21'/%3E%3C/svg%3E")}
[data-theme=naranja] header #q::placeholder{color:#8A6B58}
[data-theme=naranja] header #q:focus{border-color:#F26A0F;box-shadow:0 0 0 4px rgba(242,106,15,.28)}
[data-theme=naranja] .hd-logo{box-shadow:0 0 0 1px #F3D9C6}
[data-theme=naranja] .mobupd{color:#C2410C}

/* acceso */
:is([data-theme=azul],[data-theme=naranja]) body:has(#login:not([style*="none"])){background:radial-gradient(900px 420px at 50% -8%,rgba(var(--t-glow),.35),transparent 65%),linear-gradient(180deg,var(--t-s1),var(--t-s2))}
:is([data-theme=azul],[data-theme=naranja]) #login{border-color:rgba(var(--t-glow),.3)}
:is([data-theme=azul],[data-theme=naranja]) .lg-av{background:linear-gradient(180deg,var(--t-on1),var(--t-s1))}

/* zona de escaneo vacía */
[data-theme=naranja] .empty::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%23F26A0F' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 15V9a3 3 0 013-3h6M33 6h6a3 3 0 013 3v6M42 33v6a3 3 0 01-3 3h-6M15 42H9a3 3 0 01-3-3v-6'/%3E%3Cpath d='M14 17v14M19 17v14M25 17v14M30 17v14M34 17v14'/%3E%3C/svg%3E")}

/* total */
:is([data-theme=azul],[data-theme=naranja]) .tot .big{background:var(--t-tot-bg);color:var(--t-tot-tx);box-shadow:var(--sh1),inset 0 0 0 2px var(--t-tot-bd)}
:is([data-theme=azul],[data-theme=naranja]) .tot .big span:first-child{color:var(--t-tot-lb)}
:is([data-theme=azul],[data-theme=naranja]) .tot .big span:last-child{color:var(--t-tot-tx);text-shadow:none}

/* botón Pago */
:is([data-theme=azul],[data-theme=naranja]) .k.pay{background:linear-gradient(180deg,var(--t-p1),var(--t-p2));border-color:var(--t-pb);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 12px 24px -12px rgba(var(--t-glow),.9)}
:is([data-theme=azul],[data-theme=naranja]) .k.pay:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 16px 30px -12px rgba(var(--t-glow),1)}
:is([data-theme=azul],[data-theme=naranja]) .k.bl{border-bottom-color:#1F8FE0}
:is([data-theme=azul],[data-theme=naranja]) .k[onclick^="askDisc"] svg,
:is([data-theme=azul],[data-theme=naranja]) .k[onclick^="hold"] svg{color:var(--sky-d)}
[data-theme=azul] .k[onclick^="askDisc"] svg,[data-theme=azul] .k[onclick^="hold"] svg{color:#C2410C}

/* colores de significado: el azul de stock NO cambia con el tema */
:is([data-theme=azul],[data-theme=naranja]) .sb{color:#0A6AA6!important}
:is([data-theme=azul],[data-theme=naranja]) .ic.sb{border-top-color:#1F8FE0}
:is([data-theme=azul],[data-theme=naranja]) .ic.sb b,
:is([data-theme=azul],[data-theme=naranja]) .px-b.sb{color:#0A6AA6}
:is([data-theme=azul],[data-theme=naranja]) .chip.sb{background:#1F8FE0}

/* administración */
:is([data-theme=azul],[data-theme=naranja]) .ah,
:is([data-theme=azul],[data-theme=naranja]) #sbt{background:linear-gradient(180deg,var(--t-s1),var(--t-s2));color:var(--t-st)}
:is([data-theme=azul],[data-theme=naranja]) .ah .ib{background:rgba(255,255,255,.1);color:var(--t-st);border-color:rgba(255,255,255,.2)}
:is([data-theme=azul],[data-theme=naranja]) #sb,
:is([data-theme=azul],[data-theme=naranja]) #sb.open{background:linear-gradient(180deg,var(--t-s1),var(--t-s2))}
:is([data-theme=azul],[data-theme=naranja]) #sb button{background:transparent;color:var(--t-st);box-shadow:none}
:is([data-theme=azul],[data-theme=naranja]) #sb button svg{color:var(--t-si)}
:is([data-theme=azul],[data-theme=naranja]) #sb button:hover{background:rgba(255,255,255,.1);color:#fff}
:is([data-theme=azul],[data-theme=naranja]) #sb button.on{background:linear-gradient(135deg,var(--t-on1),var(--t-on2));color:#fff;box-shadow:0 8px 18px -8px rgba(var(--t-glow),.9)}
:is([data-theme=azul],[data-theme=naranja]) #sb button.on svg{color:#fff}
:is([data-theme=azul],[data-theme=naranja]) #sb.open button{background:rgba(255,255,255,.06)}
:is([data-theme=azul],[data-theme=naranja]) #sb.open button.on{background:linear-gradient(135deg,var(--t-on1),var(--t-on2))}
:is([data-theme=azul],[data-theme=naranja]) .tvw,
:is([data-theme=azul],[data-theme=naranja]) .tbx .tvw{background:linear-gradient(135deg,var(--t-on1),var(--t-on2))}
:is([data-theme=azul],[data-theme=naranja]) .pf-pi,
:is([data-theme=azul],[data-theme=naranja]) .cl-hi,
:is([data-theme=azul],[data-theme=naranja]) .crx-hi,
:is([data-theme=azul],[data-theme=naranja]) .pfd .pf-seg button.on{background:linear-gradient(180deg,var(--t-b1),var(--t-b2));color:#fff}
:is([data-theme=azul],[data-theme=naranja]) .tbh2-b{background:linear-gradient(180deg,var(--t-bar1),var(--t-bar2))}
:is([data-theme=azul],[data-theme=naranja]) .tbh2-b.tbpk{background:linear-gradient(180deg,var(--t-bar2),var(--t-s2))}
:is([data-theme=azul],[data-theme=naranja]) .imp-pb i{background:linear-gradient(90deg,var(--t-bar1),var(--t-bar2))}
:is([data-theme=azul],[data-theme=naranja]) #toast{border-color:rgba(var(--t-glow),.5)}
:is([data-theme=azul],[data-theme=naranja]) .tbx .tbc{box-shadow:0 1px 2px rgba(var(--t-sh),.06),0 10px 26px -14px rgba(var(--t-sh),.28)}

/* tarjetas con selector de tema (Mi empresa) */
.thm-box{margin:14px 0 6px;padding:16px;border:1px solid var(--bd);border-radius:var(--r-l);background:var(--pn);box-shadow:var(--sh1);max-width:760px}
.thm-box h3{margin:0 0 4px}.thm-box>small{display:block;color:var(--mu);margin-bottom:12px;line-height:1.4}
.thm-g{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.thm-o{position:relative;display:flex;flex-direction:column;gap:8px;padding:10px;text-align:left;background:var(--tile);color:var(--tx);border:2px solid var(--bd);border-radius:var(--r-l);box-shadow:none;font-weight:700;cursor:pointer;transition:border-color .14s,box-shadow .14s,transform .14s}
.thm-o:hover{border-color:var(--sky)}
.thm-o[aria-checked=true]{border-color:var(--sky-d);box-shadow:0 0 0 4px var(--sky-a)}
.thm-o .thm-n{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:14.5px}
.thm-o .thm-n i{display:none;font-style:normal;width:20px;height:20px;border-radius:50%;background:var(--sky-d);color:#fff;font-size:13px;line-height:20px;text-align:center}
.thm-o[aria-checked=true] .thm-n i{display:inline-block}
.thm-o small{color:var(--mu);font-weight:500;font-size:12px;line-height:1.3}
.thm-pv{display:block;height:74px;border-radius:10px;overflow:hidden;border:1px solid rgba(0,0,0,.12);background:var(--pv-bg)}
.thm-pv b{display:block;height:20px;background:var(--pv-hd);border-bottom:1px solid rgba(0,0,0,.08)}
.thm-pv b::before{content:"";display:inline-block;width:46%;height:10px;margin:5px 0 0 8px;border-radius:6px;background:#fff;border:1.5px solid var(--pv-sb,var(--pv-ac));vertical-align:top}
.thm-pv span{display:flex;gap:6px;padding:8px}
.thm-pv span::before{content:"";flex:1;height:30px;border-radius:7px;background:var(--pv-pn);border:1px solid rgba(0,0,0,.1)}
.thm-pv span::after{content:"";width:34%;height:30px;border-radius:7px;background:var(--pv-ac)}
.thm-act{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px}
.thm-act button{min-height:44px;padding:10px 22px}
.thm-act small{color:var(--mu)}
@media(max-width:700px){.thm-g{grid-template-columns:repeat(2,minmax(0,1fr))}.thm-box{padding:12px}.thm-act button{flex:1 1 100%}}
@media(prefers-reduced-motion:reduce){.thm-o{transition:none}}

/* V61 · Ventana única (qform): una sola ventana con todos los campos; hereda el tema del sistema */
.pfd.qfd{width:min(460px,94vw);max-width:94vw;height:fit-content;max-height:92dvh;border-radius:var(--r-xl)}
.qfd .pf-h{padding:12px 18px}.qfd .pf-h h3{font-size:19px;line-height:1.2}.qfd .pf-ic{width:42px;height:42px}
.qfd .pf-b{padding:14px 18px 8px;gap:12px}
.qfd .pf-f{padding:12px 18px;gap:10px}
.qfd .pf-f button{min-height:44px}
.qf-fld{display:flex;flex-direction:column;gap:6px;min-width:0}
.qf-fld>label+label{margin-top:8px}
.qf-l{font-weight:700;font-size:14px;color:var(--tx)}
.qf-fld label{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:14px;color:var(--tx);min-width:0}
.qf-fld label i{color:var(--red);font-style:normal}
.qf-fld label em{font-style:normal;font-weight:500;color:var(--mu)}
.qfd input:not([type=checkbox]),.qfd select,.qfd textarea{width:100%;font-weight:600;box-sizing:border-box}
.qfd textarea{resize:vertical;min-height:84px;font-family:inherit}
.qfd [aria-invalid=true]{border-color:var(--red)!important}
.qf-er{color:var(--red);font-size:12.5px;font-weight:700;margin:0}.qf-er:empty{display:none}
.qf-info{background:var(--sky-l);border:1px solid var(--sky-a);border-radius:var(--r-m);padding:9px 12px;font-size:14px;font-weight:700;color:var(--tx)}
.qf-info small{display:block;color:var(--mu);font-weight:500;font-size:12.5px;margin-top:2px}
.qf-seg{display:flex;width:100%}.qfd .pf-seg.qf-seg button{flex:1;padding:10px 8px}
.qf-it{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--bd);border-radius:var(--r-m);background:var(--pn)}
.qf-it b{font-size:14px}.qf-it small{display:block;color:var(--mu);font-weight:500;font-size:12.5px}
.qf-st{display:flex;align-items:center;gap:6px}
.qfd .qf-st button{margin:0!important;width:40px;height:40px;padding:0;display:grid;place-items:center;font-size:20px;line-height:1}
.qfd .qf-st input{width:64px;text-align:center;padding:8px 4px}
@media(max-width:640px){
 .pfd.qfd{width:100vw;max-width:100vw;height:fit-content;max-height:92dvh;margin:auto 0 0 0;border-radius:18px 18px 0 0}
 .qfd .pf-h{padding:12px 16px}.qfd .pf-b{padding:14px 16px 6px}
 .qfd .pf-f{padding:12px 16px max(12px,env(safe-area-inset-bottom))}.qfd .pf-f button{flex:1;justify-content:center}
 .qfd input:not([type=checkbox]),.qfd select,.qfd textarea{font-size:16px}
}

/* Flecha para regresar en las categorías del inventario */
.px-pr svg{transform:scaleX(-1)}

/* Acciones de factura en Compras */
.cpx-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.cpx-act{font-size:12px!important;padding:6px 9px!important;border-radius:9px!important;white-space:nowrap}.cpx-h{align-items:flex-start}


/* Editor de compras integrado al lenguaje visual SPOS */
.cpx-actions .cpx-act{border-color:#c8dced;background:#f4f9fe;color:#14558e}.cpx-actions .cpx-act:hover{background:#e4f2ff}

/* ===== V67 · Editar compra — diseño adaptado al sistema (tokens del tema: claro, oscuro, azul, naranja) ===== */
.spe-open{overflow:hidden}
.spe-backdrop{position:fixed;inset:0;z-index:100000;background:rgba(6,23,42,.66);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:20px}
.spe-backdrop[hidden]{display:none!important}
.spe-modal{width:min(100%,940px);max-height:min(92dvh,860px);display:flex;flex-direction:column;overflow:hidden;background:var(--pn);color:var(--tx);border:1px solid var(--bd);border-radius:var(--r-xl);box-shadow:var(--sh2);font-family:var(--font)}
#spe-content{display:flex;flex-direction:column;min-height:0;flex:1}
.spe-body{overflow:auto;flex:1;min-height:0;padding-bottom:6px}
.spe-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 24px;background:linear-gradient(135deg,var(--t-s1,var(--ink2)),var(--t-s2,var(--ink)));color:#fff;flex:none}
.spe-head>div:first-child{min-width:0;flex:1}
.spe-kicker{display:block;font-size:12px;letter-spacing:1.4px;font-weight:800;color:var(--t-si,#8FD0F8)}
.spe-head h2{font-size:26px;line-height:1.15;margin:4px 0 6px;color:#fff;font-weight:800}
.spe-head p{font-size:15px;margin:0;color:var(--t-st,#E3F1FC);font-weight:500}
.spe-modal .spe-x{flex:none;width:44px;height:44px;padding:0;display:grid;place-items:center;border-radius:var(--r-m);border:1px solid rgba(255,255,255,.4);background:rgba(255,255,255,.14);color:#fff;font-size:28px;line-height:1;box-shadow:none;cursor:pointer}
.spe-modal .spe-x:hover{background:rgba(255,255,255,.26)}
.spe-form{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:22px 24px 8px}
.spe-form label,.spe-add label,.spe-line label{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:800;color:var(--ti);min-width:0}
.spe-modal input,.spe-modal select{width:100%;min-width:0;height:46px;box-sizing:border-box;border:2px solid var(--bd);border-radius:var(--r-m);padding:0 12px;background:var(--pn);color:var(--tx);font:inherit;font-size:16px;font-weight:700;outline:none;box-shadow:none}
.spe-modal input::placeholder{color:var(--mu);font-weight:500;opacity:1}
.spe-modal input:focus,.spe-modal select:focus{border-color:var(--sky);box-shadow:0 0 0 3px var(--sky-a)}
.spe-lines-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 24px 10px}
.spe-lines-head h3{margin:0;font-size:19px;font-weight:800;color:var(--ti)}
.spe-lines-head p{margin:3px 0 0;font-size:14px;color:var(--mu);font-weight:600}
.spe-lines-head>span{background:var(--sky-l);color:var(--ti);border:1px solid var(--bd);border-radius:999px;padding:7px 14px;font-size:14px;font-weight:800;white-space:nowrap}
.spe-lines{padding:0 24px;display:grid;gap:10px}
.spe-line{display:grid;grid-template-columns:minmax(0,1fr) 110px 140px 118px auto;align-items:end;gap:12px;padding:14px;border:1px solid var(--bd);border-radius:var(--r-l);background:var(--tile);box-shadow:var(--sh1)}
.spe-product{align-self:center;min-width:0}
.spe-product b{display:block;font-size:15px;font-weight:800;color:var(--ti);text-transform:uppercase;line-height:1.25}
.spe-product small{display:block;color:var(--mu);font-size:13px;font-weight:600;margin-top:4px}
.spe-line-total{font-size:17px;font-weight:800;white-space:nowrap;color:var(--ti);text-align:right;min-height:46px;display:flex;align-items:center;justify-content:flex-end}
.spe-modal .spe-remove{height:46px;padding:0 16px;border:2px solid var(--red);background:transparent!important;color:var(--rt)!important;border-radius:var(--r-m);font-size:14px;font-weight:800;box-shadow:none;cursor:pointer}
.spe-modal .spe-remove:hover{background:var(--red)!important;color:#fff!important}
.spe-empty{padding:20px;text-align:center;color:var(--mu);font-size:15px}
.spe-add{margin:14px 24px;padding:14px;display:flex;align-items:flex-end;gap:12px;border:2px dashed var(--bd);border-radius:var(--r-l);background:var(--sky-l)}
.spe-add label{flex:1}
.spe-modal .spe-add-btn,.spe-modal .spe-save{height:46px;background:linear-gradient(180deg,#178036,#14702F);color:#fff;border:0;border-radius:var(--r-m);padding:0 20px;font-size:15px;font-weight:800;cursor:pointer;white-space:nowrap}
.spe-summary{margin:0 24px 16px;padding:16px 20px;background:var(--sel);border:2px solid var(--sky);border-radius:var(--r-l);display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--ti)}
.spe-summary span{font-size:16px;font-weight:800}.spe-summary b{font-size:28px;font-weight:800;color:var(--ti)}
.spe-footer{display:flex;justify-content:flex-end;gap:12px;padding:14px 24px;background:var(--pn);border-top:1px solid var(--bd);flex:none}
.spe-modal .spe-cancel{height:46px;padding:0 22px;border:2px solid var(--bd);background:var(--pn)!important;color:var(--tx)!important;border-radius:var(--r-m);font-size:15px;font-weight:800;box-shadow:none;cursor:pointer}
.spe-modal .spe-cancel:hover{border-color:var(--sky)}
.spe-modal .spe-save:disabled{opacity:.65;cursor:wait}
@media(max-width:760px){
 .spe-backdrop{padding:0;align-items:flex-end}.spe-modal{max-height:96dvh;border-radius:var(--r-xl) var(--r-xl) 0 0}
 .spe-head{padding:16px 18px}.spe-head h2{font-size:22px}.spe-head p{font-size:14px}
 .spe-form{grid-template-columns:1fr;padding:16px 18px 6px}.spe-lines-head{padding:14px 18px 8px}.spe-lines{padding:0 18px}
 .spe-line{grid-template-columns:1fr 1fr;gap:10px}.spe-product{grid-column:1/-1}.spe-line-total{justify-content:flex-start}
 .spe-modal .spe-remove{justify-self:stretch}
 .spe-add{margin:12px 18px;flex-direction:column;align-items:stretch}.spe-summary{margin:0 18px 14px}.spe-summary b{font-size:24px}
 .spe-footer{padding:12px 18px max(12px,env(safe-area-inset-bottom))}.spe-modal .spe-footer button{flex:1}
}

/* V68: botón Eliminar atenuado mientras el cliente siga activo (sigue avisando al tocarlo) */
#invv .crx-a .bad.off{opacity:.45}

/* V72: Documentos › Ventas — etiqueta de forma de pago y botones compactos en celular */
.dcx-kv{display:contents}
.dcx-pg{display:inline-block;padding:3px 11px;border-radius:999px;font-weight:700;font-size:13px;white-space:nowrap;--pc:#1d6fd1;background:color-mix(in srgb,var(--pc) 15%,var(--pn));color:color-mix(in srgb,var(--pc) 78%,var(--ti));border:1px solid color-mix(in srgb,var(--pc) 35%,transparent)}
.dcx-pg.ct{--pc:#0e8f8f}.dcx-pg.cr{--pc:#e07a14}.dcx-pg.tr{--pc:#6b4fd6}.dcx-pg.tj{--pc:#1d6fd1}
@media(max-width:700px){
 #invv .dcx-s{position:relative;grid-template-columns:minmax(0,1fr);row-gap:8px}
 #invv .dcx-sm{grid-column:1}
 #invv .dcx-sh{padding-right:92px;min-height:40px}
 #invv .dcx-sm small{white-space:normal;overflow:visible;text-overflow:clip}
 #invv .dcx-sa{position:absolute;top:10px;right:10px;grid-column:auto;grid-row:auto;flex-direction:row;gap:8px;border:0;padding:0}
 #invv .dcx-sa .ib{width:40px;height:40px}
 #invv .dcx-sv{grid-column:1;display:flex;flex-wrap:wrap;gap:6px 24px;border-left:0;border-top:1px dashed var(--bd);padding:8px 0 0}
 #invv .dcx-kv{display:flex;flex-direction:column;gap:1px}
 #invv .dcx-ke{display:none}
 #invv .dcx-ac{grid-column:1}
}

.cj-r b small{display:block;font-weight:400;font-size:12px;opacity:.75}
.cj-sum .cj-r.tot{border-radius:0}.cj-sum .cj-r.tot:last-child{border-radius:0 0 var(--r-l) var(--r-l)}

.cj-rt{display:flex;flex-direction:column;gap:12px}.cj-rt .cj-sum .cj-e{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--bd)}.cj-rt .cj-e small{display:block;color:var(--mu)}.cj-rt .cj-e em{font-style:normal;font-weight:800}
.cj-rt .cj-sum .cj-e{border:0;border-bottom:1px solid var(--bd);border-radius:0;background:none;box-shadow:none;padding:10px 0}.cj-rt .cj-e b{font-weight:600}

/* ===== V84 · Área de Cotizaciones ===== */
.qz-tabs{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.qz-tabs button{flex:1;min-width:150px;min-height:44px;border:1px solid var(--bd);border-radius:var(--r-m);background:var(--pn);color:var(--tx);font-weight:700;cursor:pointer}
.qz-tabs button.on{background:var(--sky);border-color:var(--sky);color:#fff}
.qz-new{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(290px,1fr);gap:14px;align-items:start}
.qz-l,.qz-r{background:var(--pn);border:1px solid var(--bd);border-radius:var(--r-m);padding:12px;min-width:0}
.qz h3{margin:0 0 10px}
.qz-s{display:flex;gap:8px;flex-wrap:wrap}.qz-s input{flex:1;min-width:180px}
.qz-res{margin-top:8px;border:1px solid var(--bd);border-radius:var(--r-m);max-height:300px;overflow:auto;background:var(--pn)}
.qz-res .p{display:flex;justify-content:space-between;gap:10px;align-items:center;width:100%;padding:10px 12px;border:0;border-bottom:1px solid var(--bd);background:transparent;color:var(--tx);text-align:left;cursor:pointer}
.qz-res .p:hover{background:var(--sky-l)}.qz-res small{display:block;color:var(--mu)}
.qz-row{display:grid;grid-template-columns:minmax(0,1fr) 150px 104px 100px 40px;gap:8px;align-items:center;padding:10px 0;border-bottom:1px solid var(--bd)}
.qz-nm small{display:block;color:var(--mu)}.qz-nm .qz-w{color:var(--o);font-weight:700}
.qz-f{display:flex;flex-direction:column;font-size:12px;color:var(--mu);gap:2px}.qz-f input{width:100%;min-width:0}
.qz-m{text-align:right}.qz-x{padding:6px 0}
.qz-r label{display:block;margin-bottom:10px;font-weight:600}.qz-r input{width:100%;margin-top:4px}
.qz-t{border-top:1px solid var(--bd);padding-top:8px}.qz-t>div{display:flex;justify-content:space-between;padding:3px 0}
.qz-t .big{font-size:1.3em;font-weight:800;color:var(--bt)}
.qz-nt{color:var(--mu);font-size:13px;margin:8px 0}
.qz-b{display:flex;flex-direction:column;gap:8px}.qz-b button{min-height:46px}
@media(max-width:800px){.qz-new{grid-template-columns:1fr}
 .qz-row{grid-template-columns:minmax(0,1fr) 40px;grid-template-areas:"nm x" "q p" "m m"}
 .qz-row .qz-nm{grid-area:nm}.qz-row .qz-x{grid-area:x}.qz-row .qz-m{grid-area:m}
 .qz-row .qz-f:nth-of-type(1){grid-area:q}.qz-row .qz-f:nth-of-type(2){grid-area:p}
 .qz-row{grid-template-columns:1fr 1fr 40px;grid-template-areas:"nm nm x" "q p p" "m m m"}}
.qz-qg{display:flex;align-items:center;gap:4px}.qz-qg button{min-width:36px;min-height:36px;padding:0;font-size:18px;font-weight:700;line-height:1}.qz-qg input{width:52px;min-width:0;text-align:center;padding:6px 4px}
/* V87: Productos sin stock (se maneja en el módulo Stock) */
.pf-s:has(#p_whw[hidden]){display:none}.pf-bt .pf-gen{grid-column:1/-1}
/* V88: error dentro del formulario de producto */
.pf-er{margin:0;padding:11px 22px;background:color-mix(in srgb,var(--red) 14%,var(--pn));color:var(--tx);border-left:5px solid var(--red);font-weight:700;font-size:14px;line-height:1.35}
.pfd input.pf-bad{border-color:var(--red)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--red) 30%,transparent)!important}
@media(max-width:640px){.pf-er{padding:10px 16px}}

/* V91: al ver una foto de producto, sin desenfoque (blur) del fondo: trababa celulares y equipos lentos con la lista detrás */
.pimgd::backdrop{backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(8,24,45,.72)}

.cj-ed{margin-left:4px;color:var(--mu);border-radius:var(--r-m)}.cj-ed:hover{color:var(--tx);background:var(--bd)}.cj-e.cj-sel{outline:2px solid #1d6fd1}.cj-e em+.cj-ed{flex:none}
.cj-ex .cj-e>div{flex:1;min-width:0}

/* ===== V94 · MODO MOSAICO (pantalla de ventas) =====
   Todo cuelga de body.mos: sin esa clase el sistema se ve y funciona igual que antes. */
.mos-only{display:none}body.mos .mos-only{display:flex}
#mosbar,#mosgrid,#mosbot{display:none}
body.mos #mosbar{display:flex}body.mos #mosgrid{display:flex}body.mos #mosbot{display:grid}
body.mos #plist{display:none!important}

/* Barra azul: solo logo, sonido y modo oscuro (el buscador pasa a la pestaña del mosaico) */
body.mos header{padding:6px 12px}
body.mos header>:not(.brand):not(#snd0):not([onclick^="theme"]):not(#mosbar){display:none!important}
body.mos header>[onclick^="theme"]{margin-left:auto}

/* Distribución: fila de botones arriba, ticket a la izquierda, mosaico a la derecha */
body.mos #posv{grid-template-columns:minmax(340px,400px) minmax(0,1fr);grid-template-rows:auto minmax(0,1fr)}
body.mos #posv>.keys{display:none!important}
body.mos #mosbar{grid-column:1/-1;grid-row:1;gap:10px;padding:10px 10px 0;min-width:0}
body.mos #posv>.left{grid-column:1;grid-row:2}
body.mos #mosgrid{grid-column:2;grid-row:2;flex-direction:column;min-width:0;min-height:0;margin:10px;border:1px solid var(--bd);border-radius:var(--r-xl);background:var(--pn);box-shadow:var(--sh1);overflow:hidden}
.mb-s{flex:1;display:flex;gap:8px;min-width:0;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.mb-s::-webkit-scrollbar{display:none}
.mb-s .k,.mb-m .k{min-height:68px}
.mb-s .k{flex:1 1 0;min-width:76px}
.mb-s .k[onclick^="pay("]{flex:1.5 1 0;min-width:112px}
.mb-d{flex:none;width:1px;margin:6px 2px;background:var(--bd)}
.mb-m{flex:none;display:flex;padding-left:10px;border-left:1px solid var(--bd)}
.mb-m .k{width:84px}

/* Pestañas + buscador del mosaico */
.mg-tabs{flex:none;display:flex;align-items:stretch;border-bottom:1px solid var(--bd)}
.mg-t{width:50px;min-height:48px;padding:0;border:0;border-right:1px solid var(--bd);border-radius:0;background:transparent;color:var(--mu);box-shadow:none;display:grid;place-items:center}
.mg-t svg{width:21px;height:21px}
.mg-t.on{color:var(--sky-d);box-shadow:inset 0 -3px 0 var(--sky)}
.mg-t:hover{background:var(--sky-l)}
.mg-s{position:relative;flex:1;min-width:0;display:flex;align-items:center}
.mg-s>svg{position:absolute;left:14px;width:18px;height:18px;color:var(--mu);pointer-events:none}
#mgtabs #q{flex:1;width:100%;min-width:0;border:0;border-radius:0;background:transparent;color:var(--tx);box-shadow:none;outline:0;font-size:15px;font-weight:500;padding:13px 14px 13px 42px}
#mgtabs #q::placeholder{color:var(--mu);opacity:1}
#mgtabs #q:focus-visible{box-shadow:inset 0 -3px 0 var(--sky);background:var(--sky-l)}

/* Cuadrícula */
.mg-body{flex:1;min-height:0;display:grid;gap:10px;padding:12px}
.mg-c,.mg-p,.mg-b{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0;min-height:0;padding:10px 8px;border-radius:var(--r-l);text-align:center;font:inherit;line-height:1.2;transition:transform 160ms var(--ease-out),box-shadow 160ms ease,border-color 160ms ease}
.mg-c:active,.mg-p:active,.mg-b:active{transform:scale(.97)}
.mg-c:focus-visible,.mg-p:focus-visible,.mg-b:focus-visible,.mg-f button:focus-visible,.mg-t:focus-visible{outline:3px solid var(--sky);outline-offset:2px}
.mg-p{background:var(--tile);color:var(--tx);border:1px solid var(--bd);box-shadow:var(--sh1);font-weight:400}
.mg-p:hover{border-color:var(--sky);box-shadow:0 0 0 3px var(--sky-a),var(--sh1)}
.mg-p.nost{opacity:.62}
.mg-im{flex:1;min-height:0;width:100%;display:grid;place-items:center;overflow:hidden}
.mg-im img{width:100%;height:100%;object-fit:contain;border-radius:var(--r-s)}
.mg-ph{color:color-mix(in srgb,var(--sky) 50%,var(--bd))}.mg-ph svg{width:44px;height:44px}
.mg-nm{max-width:100%;font-weight:700;font-size:14px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;text-wrap:balance}
.mg-pr{font-weight:600;font-size:13.5px;color:var(--mu);font-variant-numeric:tabular-nums}
.mg-st{position:absolute;top:8px;right:8px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:800;line-height:1.5}
.st2{color:var(--gt);background:color-mix(in srgb,var(--green) 14%,transparent)}
.st1{color:var(--bt);background:color-mix(in srgb,var(--blue) 14%,transparent)}
.st0{color:var(--rt);background:color-mix(in srgb,var(--red) 14%,transparent)}
.mg-n{position:absolute;top:8px;left:8px;min-width:24px;height:24px;padding:0 6px;border-radius:999px;display:grid;place-items:center;background:var(--sky-d);color:#fff;font-size:12px;font-weight:800;font-variant-numeric:tabular-nums}
.mg-c{border:0;color:#fff;background:linear-gradient(150deg,var(--c),color-mix(in srgb,var(--c) 74%,#0B2542));box-shadow:var(--sh1),inset 0 1px 0 rgba(255,255,255,.22)}
.mg-c svg{width:34px;height:34px}.mg-c b{font-size:16px;font-weight:800;max-width:100%;overflow-wrap:anywhere}.mg-c small{font-size:12.5px;font-weight:600}
.mg-b{background:transparent;color:var(--ti);border:2px dashed var(--bd);box-shadow:none}
.mg-b svg{width:28px;height:28px}.mg-b b{font-weight:800}.mg-b small{font-size:12.5px;color:var(--mu);font-weight:600}
.mg-b:hover{border-color:var(--sky);background:var(--sky-l)}
.mg-e{grid-column:1/-1;grid-row:1/-1;align-self:center;text-align:center;color:var(--mu);font-weight:600;padding:20px}

/* Pie: página y navegación */
.mg-f{flex:none;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-top:1px solid var(--bd);color:var(--mu);font-weight:600;font-size:13.5px}
.mg-f nav{display:flex;gap:2px}
.mg-f button{width:42px;height:38px;padding:0;border:0;border-radius:var(--r-m);background:transparent;color:var(--bt);box-shadow:none;display:grid;place-items:center}
.mg-f button:hover:not(:disabled){background:var(--sky-l)}.mg-f button:disabled{opacity:.35;cursor:default}
.mg-f svg{width:20px;height:20px}

/* Botones bajo el ticket */
#mosbot{grid-template-columns:repeat(3,1fr);gap:8px;padding:10px 0 0}
#mosbot .k{min-height:56px;flex-direction:row;gap:8px}
#mosbot .k svg{width:22px;height:22px}

/* Interruptor (panel «Más» y «Panel de ventas») */
.mos-row{display:flex;align-items:center;gap:12px;padding:10px 12px;margin:0 0 8px;border:1px solid var(--bd);border-radius:var(--r-m);background:var(--sky-l)}
.mos-row>div{flex:1;min-width:0}.mos-row b{display:block}.mos-row small{display:block;color:var(--mu)}
.mos-ri{display:grid;color:var(--sky-d)}.mos-ri svg{width:24px;height:24px}
#invv .mos-row{max-width:520px}
.mos-sw{position:relative;flex:none;width:54px;height:30px;padding:0;border:0;border-radius:15px;background:var(--bd);box-shadow:none;transition:background-color 160ms ease}
.mos-sw::after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.35);transition:transform 160ms var(--ease-out)}
.mos-sw[aria-checked=true]{background:var(--green)}.mos-sw[aria-checked=true]::after{transform:translateX(24px)}
.mos-sw:focus-visible{outline:3px solid var(--sky);outline-offset:2px}

/* Celular: botones arriba (se deslizan; «Más» queda fijo), mosaico, y el ticket abajo */
@media(max-width:800px){
 body.mos #posv{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) minmax(0,46vh)}
 body.mos #mosbar{grid-column:1;padding:8px 8px 0;gap:8px}
 body.mos #mosgrid{grid-column:1;grid-row:2;margin:8px}
 body.mos #posv>.left{grid-column:1;grid-row:3;padding:0 8px 8px}
 .mb-s .k,.mb-m .k{min-height:60px}.mb-s .k{min-width:68px}.mb-m .k{width:68px}
 .mb-s .k[onclick^="pay("]{min-width:92px}
 .mg-body{gap:8px;padding:8px}.mg-nm{font-size:13px}.mg-ph svg{width:36px;height:36px}
 #mosbot .k{min-height:48px}
}
@media(prefers-reduced-motion:reduce){.mg-c:active,.mg-p:active,.mg-b:active{transform:none}}
/* V94 · ajustes del mosaico */
.mg-c small{color:rgba(255,255,255,.92)}
body.mos #lines .vth{display:none}
body.mos .th,body.mos .row{grid-template-columns:minmax(0,1fr) 88px 60px 74px;gap:4px;padding-left:10px;padding-right:10px}
body.mos .row:has(.vth){grid-template-columns:minmax(0,1fr) 88px 60px 74px;gap:4px}
body.mos .row .rt b{overflow-wrap:anywhere}
#mosbot{grid-template-columns:1.35fr 1fr 1fr}
#mosbot .k{padding:6px 8px;white-space:nowrap}
@media(max-width:800px){
 body.mos #posv{grid-template-rows:auto minmax(0,1fr) minmax(0,40vh)}
 .mb-s .k[onclick^="pay("]{order:-1}
 body.mos .th,body.mos .row,body.mos .row:has(.vth){grid-template-columns:minmax(0,1fr) 84px 54px 66px;padding-left:8px;padding-right:8px}
 body.mos .row{padding-top:7px;padding-bottom:7px}
 body.mos .tot{padding:6px 4px 0}body.mos .tot div{margin:1px 0}
 body.mos .tot .big{padding:9px 14px;font-size:24px}
 #mosbot{grid-template-columns:1.35fr 1fr 1fr;padding-top:8px}
}
#mosbot,#mosbot .k{min-width:0}
#mosbot{grid-template-columns:repeat(3,minmax(0,1fr))}
#mosbot .k{flex-direction:column;min-height:64px;gap:4px;white-space:normal;line-height:1.15;text-align:center}
@media(max-width:800px){#mosbot{grid-template-columns:repeat(3,minmax(0,1fr))}#mosbot .k{min-height:54px}}
@media(max-width:800px){body.mos #posv{grid-template-rows:auto minmax(0,1fr) minmax(0,36vh)}}
@media(max-width:800px){.mg-st{top:5px;right:5px;font-size:10px;padding:1px 6px}.mg-n{top:5px;left:5px;min-width:20px;height:20px;font-size:11px}.mg-im{margin-top:12px}}

/* V94b · barra de botones más baja: más sitio para los productos */
body.mos #mosbar{padding:8px 8px 0;gap:8px}
.mb-s .k,.mb-m .k{min-height:50px;padding:4px 6px;gap:2px}
.mb-s .k svg,.mb-m .k svg{width:18px;height:18px;padding:5px;border-radius:var(--r-s)}
.mb-s .k i{display:none}
.mb-m .k{width:64px}
@media(min-width:1100px){
 .mb-s .k{flex-direction:row;gap:8px;min-height:46px;padding:4px 10px}
 .mb-s .k span{white-space:nowrap}
 .mb-m .k{width:auto;min-width:92px;flex-direction:row;gap:8px;min-height:46px}
}
body.mos #posv{grid-template-columns:minmax(320px,370px) minmax(0,1fr)}
body.mos #mosgrid{margin:8px}
.mg-body{gap:8px;padding:10px}
.mg-ph svg{width:36px;height:36px}
@media(max-width:800px){
 .mb-s .k,.mb-m .k{min-height:50px}.mb-s .k{min-width:62px}.mb-m .k{width:60px;min-width:0}
 .mb-s .k[onclick^="pay("]{min-width:84px}
 body.mos #posv{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) minmax(0,34vh)}
}
.mb-s .k svg,.mb-m .k svg,#mosbot .k svg{flex:none}

/* V95 · mosaico: productos más grandes y barra superior más compacta (referencia: captura main-sales-screen) */
body.mos header{padding:3px 10px;min-height:0}
body.mos header .brand img,body.mos header img{max-height:32px;width:auto}
body.mos #mosbar{padding:6px 8px 0;gap:6px}
.mb-s{gap:6px}
.mb-s .k,.mb-m .k{min-height:44px;padding:3px 6px}
.mb-s .k svg,.mb-m .k svg{width:16px;height:16px;padding:4px}
@media(min-width:1100px){
 .mb-s .k{min-height:42px;padding:3px 8px;gap:6px;font-size:13px}
 .mb-m .k{min-height:42px;min-width:84px;gap:6px}
}
@media(min-width:801px){body.mos #posv{grid-template-columns:minmax(300px,340px) minmax(0,1fr)}}
body.mos #mosgrid{margin:6px 8px 8px 6px}
.mg-tabs .mg-t{min-height:42px}
#mgtabs #q{padding-top:10px;padding-bottom:10px}
.mg-body{gap:8px;padding:8px}
/* Mosaico: la imagen manda (llena el espacio libre), nombre y precio debajo */
.mg-p,.mg-c,.mg-b{padding:8px 8px 10px}
.mg-im{position:relative;flex:1 1 auto;min-height:0}
.mg-im img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.mg-ph svg{width:56px;height:56px}
.mg-nm{font-size:15px}
.mg-pr{font-size:14px}
.mg-c svg{width:40px;height:40px}.mg-c b{font-size:17px}
#mosbot .k{min-height:50px}
@media(max-width:800px){
 body.mos header{padding:3px 8px}
 body.mos #mosbar{padding:6px 6px 0}
 .mb-s .k,.mb-m .k{min-height:46px}
 .mb-s .k{min-width:58px}.mb-m .k{width:56px}
 body.mos #mosgrid{margin:6px}
 .mg-body{gap:6px;padding:6px}
 .mg-nm{font-size:13px}.mg-pr{font-size:12.5px}
 .mg-ph svg{width:40px;height:40px}
 #mosbot .k{min-height:46px}
}

/* V95c · botones en la barra azul (PC/tablet ancha), ticket compacto y bloque inferior más pequeño */
@media(min-width:801px){
 body.mos header{padding:5px 10px;gap:10px;align-items:center}
 body.mos header>#snd0{display:none!important}
 body.mos header>#mosbar{flex:1;min-width:0;padding:0;gap:6px}
 body.mos #mosbar .mb-s{gap:6px}
 body.mos #mosbar .k{min-height:38px!important;min-width:0!important;width:auto!important;flex:1 1 auto!important;padding:2px 7px!important;gap:5px!important;font-size:12.5px;border-radius:10px;flex-direction:row!important}
 body.mos #mosbar .k svg{width:15px!important;height:15px!important;padding:3px!important}
 body.mos #mosbar .k span{white-space:nowrap}
 body.mos #mosbar .mb-m{padding-left:6px;border-left:1px solid rgba(255,255,255,.25)}
 body.mos #mosbar .mb-m .k{flex:none!important;padding:2px 8px!important}
 body.mos #mosbar .mb-d{background:rgba(255,255,255,.3)}
 body.mos #posv{grid-template-rows:minmax(0,1fr)}
 body.mos #posv>.left,body.mos #mosgrid{grid-row:1}
}
/* Ticket: cada producto ocupa poco y el nombre va en una sola línea */
body.mos .th,body.mos .row,body.mos .row:has(.vth){grid-template-columns:minmax(0,1fr) 76px 54px 64px;gap:4px}
body.mos .th{padding:5px 10px;font-size:12px}
body.mos .row{padding:5px 10px;line-height:1.15}
body.mos .row .rt b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;overflow-wrap:normal;font-size:14px}
body.mos .row .rt small{font-size:11px;line-height:1.1}
body.mos .row .q{gap:3px}
body.mos .row .q button{padding:0 7px;font-size:13px;line-height:1.35}
body.mos .row>b,body.mos .row>div:nth-child(n+3){font-size:13.5px}
/* Totales y botones de abajo, más pequeños */
body.mos .tot{padding:4px 4px 0 0}
body.mos .tot div{margin:0;font-size:13.5px}
body.mos .tot .big{margin-top:5px;padding:6px 12px;font-size:22px;border-radius:var(--r-m)}
body.mos .tot .big span:first-child{font-size:12px}
body.mos #mosbot{gap:6px;padding-top:6px}
body.mos #mosbot .k{min-height:36px;flex-direction:row;gap:6px;padding:3px 6px;font-size:12.5px;white-space:nowrap}
body.mos #mosbot .k svg{width:16px;height:16px;padding:3px}
/* V95c · fila del ticket en 2 líneas: nombre completo (1 línea) arriba; código, cantidad, precio y monto abajo */
body.mos .row .rt,body.mos .row .rt>span{display:contents}
body.mos .row .rt b{grid-column:1/-1;grid-row:1}
body.mos .row .rt small{grid-column:1;grid-row:2;align-self:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.mos .row>div:nth-child(n+2),body.mos .row>b{grid-row:2;align-self:center}
body.mos .row{row-gap:2px;padding:4px 10px}
body.mos #mosbot{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr)}
body.mos #mosbot .k{gap:4px;padding:3px 4px;font-size:12px}
body.mos #mosbot .k svg{width:14px;height:14px;padding:3px}
body.mos #mosbot{grid-template-columns:minmax(0,1.4fr) minmax(0,.95fr) minmax(0,1.1fr)}
@media(min-width:801px){body.mos #mosbar .k{flex:1 0 auto!important}}
@media(min-width:801px) and (max-width:1180px){
 body.mos #mosbar .k svg{display:none!important}
 body.mos #mosbar .k{padding:2px 6px!important;font-size:12px}
 body.mos header{gap:6px;padding:5px 8px}
}

/* V95d · ventana de Cobrar compacta en PC/tablet ancha: todo visible sin bajar con el mouse */
@media(min-width:901px){
 #dlg.cbd{width:min(840px,97vw);padding:12px}
 #dlg.cbd .cb-top{gap:10px;margin-bottom:8px}
 #dlg.cbd .cb-c{padding:6px 14px;gap:10px}
 #dlg.cbd .cb-c small{font-size:12.5px}
 #dlg.cbd .cb-tot b{font-size:34px}
 #dlg.cbd .cb-v{font-size:19px}
 #dlg.cbd .cb-c .cb-svg{width:26px;height:26px}
 #dlg.cbd .cb-p{padding:8px 10px;margin-bottom:8px}
 #dlg.cbd .cb-p h4{margin:0 0 6px;font-size:13px}
 #dlg.cbd .cb-p h4 .cb-svg{width:16px;height:16px}
 #dlg.cbd .cb-tv{gap:10px}
 #dlg.cbd .cbm{padding:7px 12px;font-size:15px}
 #dlg.cbd .cb-wc{min-height:38px;padding-top:3px;padding-bottom:3px}
 #dlg.cbd .cb-wt small{font-size:12.5px}
 #dlg.cbd .cb-pm{gap:8px}
 #dlg.cbd .cb-pm .cbm{padding:8px 10px;font-size:15px}
 #dlg.cbd .cb-pm .cbm .cb-svg{width:20px;height:20px}
 #dlg.cbd .cb-rc{gap:12px}
 #dlg.cbd .cb-fl{font-size:13px;gap:3px}
 #dlg.cbd #rec,#dlg.cbd #recusd{font-size:30px!important}
 #dlg.cbd .cb-cur{font-size:16px}
 #dlg.cbd .cb-in input{padding:3px 0}
 #dlg.cbd .cb-eqt{margin-top:3px;font-size:13px}
 #dlg.cbd .cb-eqt small{font-size:11.5px}
 #dlg.cbd .cb-ch{margin-top:8px;padding:6px 16px;gap:10px}
 #dlg.cbd .cb-chi .cb-svg{width:26px;height:26px}
 #dlg.cbd .cb-cht b{font-size:16px}
 #dlg.cbd .cb-cht small{font-size:12.5px}
 #dlg.cbd #chg{font-size:34px}
 #dlg.cbd #chgu{font-size:14px}
 #dlg.cbd .cb-sts{gap:8px;margin-top:8px}
 #dlg.cbd .cb-st{min-height:36px;padding:6px 8px;font-size:14px}
 #dlg.cbd .cb-st .cb-svg{width:17px;height:17px}
 #dlg.cbd .cb-cl{margin-top:8px}
 #dlg.cbd .cb-cl .cb-in input{padding:7px 0;font-size:14px}
 #dlg.cbd .cb-nw{padding:0 16px;font-size:14px}
 #dlg.cbd .cb-act{gap:12px;bottom:-12px;padding:4px 0 0}
 #dlg.cbd .cb-act button{padding:10px 16px;font-size:18px}
 #dlg.cbd .cb-err:not(:empty){margin-top:4px}
}
@media(min-width:901px){#dlg.cbd .cb-pm .cbm{gap:6px;padding:8px 8px;font-size:14.5px}#dlg.cbd .cb-pm .cbm kbd{font-size:11.5px}}

/* V96b · CAMBIO resaltado: fondo de color fuerte, texto blanco y monto más grande (todos los temas) */
#dlg.cbd{--cbh1:#1976D2;--cbh2:#0B4F9A;--cbhx:#fff;--cbhs:#E3F1FF}
[data-theme=dark] #dlg.cbd{--cbh1:#2F8AD0;--cbh2:#14548C;--cbhx:#fff;--cbhs:#E3F1FF}
[data-theme=azul] #dlg.cbd{--cbh1:#1572C4;--cbh2:#0A4C8F;--cbhx:#fff;--cbhs:#E3F1FF}
[data-theme=naranja] #dlg.cbd{--cbh1:#E0731F;--cbh2:#B3500D;--cbhx:#fff;--cbhs:#FFEBDA}
#dlg.cbd .cb-ch{box-shadow:0 4px 14px rgba(11,79,154,.38),inset 0 1px 0 rgba(255,255,255,.28)}
[data-theme=naranja] #dlg.cbd .cb-ch{box-shadow:0 4px 14px rgba(179,80,13,.38),inset 0 1px 0 rgba(255,255,255,.28)}
#dlg.cbd .cb-cht b,#dlg.cbd #chg{text-shadow:0 1px 2px rgba(0,0,0,.25)}
@media(min-width:901px){
 #dlg.cbd .cb-ch{padding:8px 18px}
 #dlg.cbd .cb-cht b{font-size:17px}
 #dlg.cbd .cb-cht small{font-size:13px;font-weight:600}
 #dlg.cbd #chg{font-size:42px}
 #dlg.cbd #chgu{font-size:15px}
}
