
/* Punto de entrada único para los estilos de TiendApps. */

/* css/00-tokens-base.css */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --navy:#0F2B5B; --navy2:#1A3A6E; --navy3:#0A1F40;
  --gold:#B8913F; --gold2:#C9A84C; --gold3:#8B6A2E;
  --cyan:#00B4D8;
  --green:#16A34A; --green-bg:rgba(22,163,74,.08); --green-br:rgba(22,163,74,.2);
  --amber:#D97706; --amber-bg:rgba(217,119,6,.08); --amber-br:rgba(217,119,6,.2);
  --error:#DC2626; --error-bg:rgba(220,38,38,.08); --error-br:rgba(220,38,38,.2);
  --purple:#7C3AED;
  --bg:#EEF2F7; --surface:#FFFFFF; --surface2:#F8FAFC; --surface3:#F1F5F9;
  --text:#1E293B; --text2:#475569; --text3:#94A3B8;
  --border:#E2E8F0; --border2:#CBD5E1;
  --sh:0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04);
  --sh-md:0 4px 16px rgba(15,43,91,.09);
  --sh-lg:0 10px 30px rgba(15,43,91,.12);
  --r4:4px;--r6:6px;--r8:8px;--r12:12px;--r16:16px;--r20:20px;
  --dur:.17s;
  --topbar-h:54px;--paybar-h:46px;--banner-h:34px;--totals-h:52px;
  --header-total:186px;
}
html,body{height:100%;overflow:hidden;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;-webkit-font-smoothing:antialiased;background:var(--bg);color:var(--text)}
button{font-family:inherit;cursor:pointer;border:none}
input,select{font-family:inherit}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}

/* ── VIEWS ─────────────────────────────────────────────── */
.view{position:fixed;inset:0;display:none;flex-direction:column;opacity:0;transition:opacity .25s ease}
.view.on{display:flex}.view.vis{opacity:1}

/* ══════════════════════════════════════════════════
   LOGIN (light)
══════════════════════════════════════════════════ */
#v-login{background:linear-gradient(135deg,var(--navy3) 0%,var(--navy) 50%,var(--navy2) 100%);align-items:center;justify-content:center}
.login-card{background:var(--surface);border-radius:var(--r20);box-shadow:var(--sh-lg),0 0 0 1px rgba(0,0,0,.05);padding:2rem 1.75rem;width:100%;max-width:480px;margin:1rem}
.login-logo-area{text-align:center;margin-bottom:1.75rem;display:flex;flex-direction:column;align-items:center;gap:.5rem}
.login-logo{width:72px;height:72px;border-radius:50%;box-shadow:var(--sh-md);object-fit:cover}
.login-brand{font-size:1.5rem;font-weight:800;letter-spacing:-.5px}
.login-brand .nb{color:var(--navy)}.login-brand .gb{color:var(--gold)}
.login-tagline{font-size:.72rem;color:var(--text3);letter-spacing:1.5px;font-weight:500}
.login-label{font-size:.73rem;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--text3);margin-bottom:.625rem}
.emp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1.25rem}
.emp-card{background:var(--surface3);border:2px solid var(--border);border-radius:var(--r12);padding:1rem .625rem;text-align:center;cursor:pointer;transition:all var(--dur)}
.emp-card:hover{border-color:var(--navy);background:#EEF2F7}
.emp-card.sel{border-color:var(--gold);background:rgba(184,145,63,.05);box-shadow:0 0 0 3px rgba(184,145,63,.15)}
.emp-av{width:44px;height:44px;border-radius:50%;margin:0 auto .5rem;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;color:#fff}
.emp-name{font-size:.73rem;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.emp-role{font-size:.6rem;color:var(--text3);margin-top:.1rem}
.pin-box{background:var(--surface3);border-radius:var(--r12);border:1px solid var(--border);padding:1.25rem}
.pin-title{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:var(--text3);text-align:center;margin-bottom:.875rem}
.pin-dots{display:flex;justify-content:center;gap:.5rem;margin-bottom:.875rem}
.pin-dot{width:11px;height:11px;border-radius:50%;border:2px solid var(--border2);transition:all .15s}
.pin-dot.fill{background:var(--navy);border-color:var(--navy);box-shadow:0 0 0 3px rgba(15,43,91,.1)}
.pin-dot.err{background:var(--error);border-color:var(--error);animation:shake .3s ease}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}
.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem}
.pin-btn{background:var(--surface);border:1px solid var(--border);border-radius:var(--r8);height:44px;font-size:1rem;font-weight:600;color:var(--text);transition:all .1s}
.pin-btn:hover{background:#EEF2F7;border-color:var(--border2)}
.pin-btn:active{background:var(--navy);color:#fff;border-color:var(--navy);transform:scale(.96)}
.pin-btn.del{color:var(--amber)}
.pin-btn.enter{background:var(--navy);color:#fff;font-weight:700;border-color:var(--navy);grid-column:1/-1;margin-top:.25rem}
.pin-btn.enter:hover:not(:disabled){background:var(--navy2)}
.pin-btn.enter:disabled{opacity:.3;pointer-events:none}
.pin-err{text-align:center;font-size:.73rem;color:var(--error);margin-top:.625rem;min-height:.875rem}


/* css/10-login-apertura.css */
/* APERTURA */
#v-apertura{background:linear-gradient(135deg,var(--navy3) 0%,var(--navy) 60%,var(--navy2) 100%);align-items:center;justify-content:center}
.ap-card{background:var(--surface);border-radius:var(--r20);box-shadow:var(--sh-lg);padding:2rem;width:100%;max-width:420px;margin:1rem}
.ap-logo-row{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem}
.ap-logo{width:44px;height:44px;border-radius:50%;object-fit:cover}
.ap-brand{font-size:1rem;font-weight:700}.ap-brand .nb{color:var(--navy)}.ap-brand .gb{color:var(--gold)}
.ap-head{font-size:1rem;font-weight:700;color:var(--text);margin-bottom:.25rem}
.ap-sub{font-size:.8125rem;color:var(--text2);margin-bottom:1.25rem}
.ap-emp{display:flex;align-items:center;gap:.625rem;background:var(--surface3);border-radius:var(--r8);padding:.75rem;margin-bottom:1.25rem;border:1px solid var(--border)}
.ap-emp-av{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;color:#fff;flex-shrink:0}
.ap-lbl{font-size:.75rem;font-weight:500;color:var(--text2);display:block;margin-bottom:.375rem}
.ap-inp-wrap{position:relative;margin-bottom:1.25rem}
.ap-prefix{position:absolute;left:.875rem;top:50%;transform:translateY(-50%);color:var(--text3);font-size:1rem}
.ap-inp{width:100%;background:var(--surface3);border:1.5px solid var(--border);border-radius:var(--r8);padding:.8rem .875rem .8rem 2.125rem;font-size:1.25rem;font-weight:700;color:var(--text);text-align:right;outline:none;transition:border-color var(--dur)}
.ap-inp:focus{border-color:var(--navy)}
.ap-btn{width:100%;background:var(--navy);color:#fff;border:none;border-radius:var(--r8);padding:.9rem;font-size:.9375rem;font-weight:700;transition:all var(--dur)}
.ap-btn:hover{background:var(--navy2)}
.ap-ghost{width:100%;background:transparent;border:1.5px solid var(--border);color:var(--text3);border-radius:var(--r8);padding:.65rem;font-size:.8rem;margin-top:.5rem;transition:all var(--dur)}
.ap-ghost:hover{border-color:var(--border2);color:var(--text2)}

/* ══════════════════════════════════════════════════
   POS MAIN — light theme
══════════════════════════════════════════════════ */
#v-pos{background:var(--bg)}


/* css/20-pos.css */
/* ─── TOP BAR ──────────────────────────────────── */
.pos-topbar{height:var(--topbar-h);background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:.625rem;padding:0 .875rem;flex-shrink:0;box-shadow:var(--sh);position:sticky;top:0;z-index:60}
.pos-logo-wrap{display:flex;align-items:center;gap:.5rem;flex-shrink:0}
.pos-logo-img{width:34px;height:34px;border-radius:50%;object-fit:cover;flex-shrink:0}
.pos-brand{font-size:.875rem;font-weight:800;letter-spacing:-.3px;white-space:nowrap}
.pos-brand .nb{color:var(--navy)}.pos-brand .gb{color:var(--gold)}
.pos-sep{width:1px;height:24px;background:var(--border);flex-shrink:0}
.pos-store{font-size:.78rem;font-weight:600;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:160px}
.pos-datetime{display:flex;align-items:center;gap:.375rem;font-size:.78rem;color:var(--text2);white-space:nowrap;margin-left:.25rem}
.pos-clock{font-size:.875rem;font-weight:700;color:var(--navy);font-variant-numeric:tabular-nums}
.pos-date{font-size:.73rem;color:var(--text3)}
.pos-sp{flex:1}
.pos-search-wrap{flex:1;max-width:280px;position:relative}
.pos-search{width:100%;background:var(--surface3);border:1.5px solid var(--border);border-radius:var(--r8);padding:.4rem .75rem .4rem 2rem;font-size:.8rem;color:var(--text);outline:none;transition:border-color var(--dur)}
.pos-search:focus{border-color:var(--navy);background:var(--surface)}
.pos-search-ico{position:absolute;left:.625rem;top:50%;transform:translateY(-50%);color:var(--text3)}
.pos-scan-btn{width:34px;height:34px;background:var(--surface3);border:1.5px solid var(--border);border-radius:var(--r8);display:flex;align-items:center;justify-content:center;color:var(--text3);transition:all var(--dur);flex-shrink:0}
.pos-scan-btn:hover{border-color:var(--navy);color:var(--navy);background:rgba(15,43,91,.04)}
.pos-emp-chip{display:flex;align-items:center;gap:.375rem;background:var(--surface3);border:1px solid var(--border);border-radius:999px;padding:.25rem .625rem .25rem .3rem;font-size:.73rem;color:var(--text2);flex-shrink:0}
.pos-emp-av{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.52rem;font-weight:700;color:#fff;flex-shrink:0}
.pos-admin-btn{background:var(--navy);color:#fff;border-radius:var(--r8);padding:.35rem .75rem;font-size:.73rem;font-weight:600;transition:all var(--dur);flex-shrink:0}
.pos-admin-btn:hover{background:var(--navy2)}
.pos-corte-btn{background:var(--error-bg);border:1px solid var(--error-br);color:var(--error);border-radius:var(--r8);padding:.35rem .75rem;font-size:.73rem;font-weight:600;transition:all var(--dur);flex-shrink:0}
.pos-corte-btn:hover{background:rgba(220,38,38,.14)}

/* ─── PAYMENT METHOD BAR ──────────────────────── */
.pos-paybar{height:var(--paybar-h);background:var(--navy3);border-bottom:1px solid rgba(255,255,255,.06);display:flex;align-items:center;gap:.5rem;padding:0 .875rem;flex-shrink:0;position:sticky;top:var(--topbar-h);z-index:59}
.paybar-lbl{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:rgba(255,255,255,.35);white-space:nowrap}
.paybar-sep{width:1px;height:22px;background:rgba(255,255,255,.1);flex-shrink:0}
.pay-method-btn{display:flex;align-items:center;gap:.4rem;padding:.45rem .875rem;border-radius:var(--r8);border:1.5px solid rgba(255,255,255,.1);background:rgba(255,255,255,.05);color:rgba(255,255,255,.55);font-size:.775rem;font-weight:500;transition:all .12s ease;cursor:pointer;white-space:nowrap}
.pay-method-btn:hover{border-color:rgba(255,255,255,.2);color:rgba(255,255,255,.8)}
.pay-method-btn.active-efect{background:rgba(34,197,94,.15);border-color:rgba(34,197,94,.35);color:#4ADE80}
.pay-method-btn.active-trans{background:rgba(168,85,247,.15);border-color:rgba(168,85,247,.35);color:#C084FC}
.pay-method-btn.active-card{background:rgba(59,130,246,.15);border-color:rgba(59,130,246,.35);color:#93C5FD}
.paybar-dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex-shrink:0}
.paybar-total{margin-left:auto;font-size:.78rem;color:rgba(255,255,255,.4);font-variant-numeric:tabular-nums}
.paybar-total strong{color:rgba(255,255,255,.85);font-size:.9375rem;margin-left:.25rem}
.paybar-caja{margin-left:.5rem;font-size:.7rem;color:rgba(255,255,255,.3);white-space:nowrap}

/* ─── ANNOUNCEMENT BANNER ─────────────────────── */
.pos-banner{height:var(--banner-h);background:linear-gradient(90deg,var(--navy3) 0%,#1A2D4A 100%);border-bottom:1px solid rgba(184,145,63,.15);display:flex;align-items:center;overflow:hidden;flex-shrink:0;position:sticky;top:calc(var(--topbar-h) + var(--paybar-h));z-index:58}
.banner-icon{flex-shrink:0;padding:0 .625rem;font-size:.875rem;color:var(--gold2)}
.banner-divider{width:1px;height:18px;background:rgba(184,145,63,.2);flex-shrink:0}
.banner-track-wrap{flex:1;overflow:hidden;padding:0 .5rem}
.banner-track{display:flex;width:max-content;animation:marquee 28s linear infinite}
.banner-track:hover{animation-play-state:paused}
.banner-msg{white-space:nowrap;font-size:.73rem;color:rgba(255,255,255,.6);padding-right:4rem}
.banner-msg b{color:var(--gold2);font-weight:600}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ─── TOTALS BAR ──────────────────────────────── */
.pos-totbar{height:var(--totals-h);background:var(--surface);border-bottom:2px solid var(--border);display:flex;align-items:center;gap:.5rem;padding:0 .875rem;flex-shrink:0;position:sticky;top:calc(var(--topbar-h) + var(--paybar-h) + var(--banner-h));z-index:57;box-shadow:0 2px 8px rgba(0,0,0,.04)}
.totbar-items{font-size:.73rem;color:var(--text3);white-space:nowrap}
.totbar-items b{color:var(--text2)}
.totbar-sep{width:1px;height:20px;background:var(--border);flex-shrink:0}
.totbar-stat{display:flex;flex-direction:column;align-items:flex-start;flex-shrink:0}
.totbar-lbl{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text3)}
.totbar-val{font-size:.875rem;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}
.totbar-total-lbl{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text3)}
.totbar-total-val{font-size:1.125rem;font-weight:800;color:var(--navy);font-variant-numeric:tabular-nums;letter-spacing:-.5px}
.totbar-sp{flex:1}
.btn-cobrar-top{background:var(--navy);color:#fff;border:none;border-radius:var(--r8);padding:.55rem 1.125rem;font-size:.875rem;font-weight:700;display:flex;align-items:center;gap:.5rem;transition:all var(--dur);white-space:nowrap}
.btn-cobrar-top:hover:not(:disabled){background:var(--navy2);box-shadow:0 4px 12px rgba(15,43,91,.25)}
.btn-cobrar-top:disabled{opacity:.3;pointer-events:none}
.btn-cobrar-top .total-chip{background:rgba(255,255,255,.15);border-radius:var(--r4);padding:.1rem .45rem;font-size:.78rem;font-weight:600}
.btn-cancel-top{background:var(--error-bg);border:1px solid var(--error-br);color:var(--error);border-radius:var(--r8);padding:.5rem .75rem;font-size:.78rem;font-weight:500;transition:all var(--dur);white-space:nowrap}
.btn-cancel-top:hover:not(:disabled){background:rgba(220,38,38,.14)}
.btn-cancel-top:disabled{opacity:.2;pointer-events:none}
.btn-periph{background:var(--surface3);border:1.5px solid var(--border);color:var(--text3);border-radius:var(--r8);padding:.4rem .625rem;font-size:.73rem;font-weight:500;display:flex;align-items:center;gap:.3rem;transition:all var(--dur);white-space:nowrap}
.btn-periph:hover{border-color:var(--navy);color:var(--navy)}
.btn-periph.connected{border-color:var(--green);color:var(--green);background:var(--green-bg)}

/* ─── POS BODY ────────────────────────────────── */
.pos-body{display:flex;height:calc(100vh - var(--header-total));overflow:hidden}

/* CATEGORY SIDEBAR */
.cat-sb{width:130px;background:var(--surface);border-right:1px solid var(--border);overflow-y:auto;flex-shrink:0;padding:.5rem 0}
.cat-sb::-webkit-scrollbar{width:0}
.cat-item{display:flex;align-items:center;gap:.4rem;padding:.525rem .875rem;font-size:.775rem;color:var(--text2);cursor:pointer;border-left:3px solid transparent;transition:all .12s ease;user-select:none;white-space:nowrap}
.cat-item:hover{background:rgba(15,43,91,.04);color:var(--text)}
.cat-item.act{background:rgba(15,43,91,.06);color:var(--navy);border-left-color:var(--navy);font-weight:600}
.cat-emoji{font-size:.9375rem;flex-shrink:0;width:18px;text-align:center}

/* PRODUCT GRID */
.prod-area{flex:1;overflow-y:auto;padding:.75rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(128px,1fr));gap:.625rem;align-content:start}
.prod-area::-webkit-scrollbar{width:4px}
.prod-area::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px}

/* Product CARD (light) */
.prod-card{background:var(--surface);border-radius:var(--r12);border:1px solid var(--border);cursor:pointer;padding:0;display:flex;flex-direction:column;align-items:stretch;transition:all .12s ease;user-select:none;position:relative;overflow:hidden;box-shadow:var(--sh)}
.prod-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px}
.prod-card:hover{border-color:var(--navy);transform:translateY(-2px);box-shadow:var(--sh-md)}
.prod-card:active{transform:scale(.97)}
.prod-card.out{opacity:.38;pointer-events:none}
.pc-img-wrap{width:100%;aspect-ratio:1;display:flex;align-items:center;justify-content:center;background:var(--surface3);font-size:2rem;line-height:1;overflow:hidden;flex-shrink:0}
.pc-img{width:100%;height:100%;object-fit:cover}
.pc-body{padding:.5rem .5rem .625rem;display:flex;flex-direction:column;gap:.15rem}
.pc-name{font-size:.72rem;font-weight:600;color:var(--text);line-height:1.3;max-height:2.6em;overflow:hidden}
.pc-sku{font-size:.6rem;color:var(--text3)}
.pc-price{font-size:.9375rem;font-weight:800;color:var(--navy);font-variant-numeric:tabular-nums;margin-top:.125rem}
.pc-stock{display:flex;align-items:center;gap:.3rem;margin-top:.125rem}
.pc-sdot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.pc-sdot.ok{background:var(--green)}.pc-sdot.lo{background:var(--amber)}.pc-sdot.ou{background:var(--error)}
.pc-stxt{font-size:.6rem;color:var(--text3)}
.prod-no-res{grid-column:1/-1;text-align:center;padding:3rem;color:var(--text3);font-size:.875rem}

/* ─── CART PANEL (light) ──────────────────────── */
.cart-panel{width:310px;background:var(--surface);border-left:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0}
.cart-head{padding:.625rem .875rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.cart-head-t{font-size:.8rem;font-weight:700;color:var(--text2);display:flex;align-items:center;gap:.375rem}
.cart-cnt{background:var(--navy);color:#fff;font-size:.58rem;font-weight:700;padding:.1rem .375rem;border-radius:999px;line-height:1.5}
.cart-clear-btn{background:var(--error-bg);border:1px solid var(--error-br);color:var(--error);border-radius:var(--r4);padding:.2rem .5rem;font-size:.68rem;font-weight:500;transition:all var(--dur)}
.cart-clear-btn:hover{background:rgba(220,38,38,.14)}
.cart-clear-btn:disabled{opacity:.25;pointer-events:none}
.cart-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.625rem;color:var(--text3)}
.cart-empty svg{opacity:.2;color:var(--text3)}
.cart-empty-t{font-size:.825rem;color:var(--text3)}
.cart-list{flex:1;overflow-y:auto}
.cart-list::-webkit-scrollbar{width:0}
.cart-item{padding:.5rem .875rem;border-bottom:1px solid var(--border)}
.ci-r1{display:flex;align-items:flex-start;gap:.375rem;margin-bottom:.3rem}
.ci-name{font-size:.775rem;font-weight:500;color:var(--text);flex:1;line-height:1.35}
.ci-del{background:var(--error-bg);border:1px solid transparent;border-radius:var(--r4);width:18px;height:18px;display:flex;align-items:center;justify-content:center;color:var(--error);font-size:.6875rem;flex-shrink:0;transition:background var(--dur)}
.ci-del:hover{background:rgba(220,38,38,.18);border-color:var(--error-br)}
.ci-r2{display:flex;align-items:center;gap:.375rem}
.ci-qty{display:flex;align-items:center;gap:0;background:var(--surface3);border:1px solid var(--border);border-radius:var(--r6);overflow:hidden}
.ci-q-btn{width:24px;height:24px;background:transparent;color:var(--text2);font-size:.9rem;display:flex;align-items:center;justify-content:center;transition:all .1s}
.ci-q-btn:hover{background:var(--border);color:var(--text)}
.ci-q-val{font-size:.8rem;font-weight:700;color:var(--text);min-width:22px;text-align:center;font-variant-numeric:tabular-nums}
.ci-uprice{font-size:.72rem;color:var(--text3);margin-left:auto}
.ci-total{font-size:.8rem;font-weight:700;color:var(--navy);font-variant-numeric:tabular-nums}
.ci-disc-row{display:flex;align-items:center;gap:.3rem;margin-top:.2rem}
.ci-disc-lbl{font-size:.65rem;color:var(--text3)}
.ci-disc-inp{width:44px;background:var(--surface3);border:1px solid var(--border);border-radius:var(--r4);padding:.15rem .3rem;font-size:.68rem;color:var(--navy);text-align:center;outline:none;font-weight:600}
.ci-disc-tag{font-size:.65rem;color:var(--amber)}


/* css/30-admin.css */
/* ══════════════════════════════════════════════════
   CORTE DE CAJA
══════════════════════════════════════════════════ */
#v-corte{background:var(--bg);align-items:center;justify-content:center;overflow-y:auto}
.corte-card{background:var(--surface);border-radius:var(--r16);box-shadow:var(--sh-lg);padding:2rem;width:100%;max-width:480px;margin:1rem}
.corte-head{display:flex;align-items:center;gap:.75rem;margin-bottom:.375rem}
.corte-icon{font-size:1.5rem}
.corte-title{font-size:1.0625rem;font-weight:700;color:var(--text)}
.corte-sub{font-size:.8rem;color:var(--text3);margin-bottom:1.5rem}
.corte-grid{background:var(--surface3);border-radius:var(--r12);padding:1.125rem;margin-bottom:1.25rem;border:1px solid var(--border)}
.cg-title{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:var(--text3);margin-bottom:.875rem}
.cg-row{display:flex;justify-content:space-between;font-size:.8125rem;padding:.3rem 0;border-bottom:1px solid var(--border)}
.cg-row:last-child{border-bottom:none}
.cg-lbl{color:var(--text2)}.cg-val{font-weight:600;font-variant-numeric:tabular-nums;color:var(--text)}
.cg-row.total{border-top:2px solid var(--border);margin-top:.375rem;padding-top:.625rem}
.cg-row.total .cg-lbl{font-weight:700;color:var(--text)}.cg-row.total .cg-val{font-size:1.0625rem;font-weight:800;color:var(--navy)}
.corte-inp-lbl{font-size:.75rem;font-weight:500;color:var(--text2);display:block;margin-bottom:.375rem}
.corte-inp-wrap{position:relative;margin-bottom:.5rem}
.corte-inp-pre{position:absolute;left:.875rem;top:50%;transform:translateY(-50%);color:var(--text3);font-size:1rem}
.corte-inp{width:100%;background:var(--surface3);border:1.5px solid var(--border);border-radius:var(--r8);padding:.8rem .875rem .8rem 2.25rem;font-size:1.25rem;font-weight:700;color:var(--text);outline:none;text-align:right;transition:border-color var(--dur);font-variant-numeric:tabular-nums}
.corte-inp:focus{border-color:var(--navy)}
.corte-diff{border-radius:var(--r8);padding:.75rem 1rem;display:flex;justify-content:space-between;align-items:center;margin-bottom:1.25rem}
.corte-diff.ok{background:var(--green-bg);border:1px solid var(--green-br)}
.corte-diff.def{background:var(--error-bg);border:1px solid var(--error-br)}
.cd-lbl{font-size:.8rem;font-weight:500}
.corte-diff.ok .cd-lbl{color:var(--green)}.corte-diff.def .cd-lbl{color:var(--error)}
.cd-val{font-size:1.25rem;font-weight:800;font-variant-numeric:tabular-nums}
.corte-diff.ok .cd-val{color:var(--green)}.corte-diff.def .cd-val{color:var(--error)}
.corte-foot{display:flex;gap:.75rem}
.corte-back{flex:1;background:var(--surface3);border:1px solid var(--border);color:var(--text2);border-radius:var(--r8);padding:.75rem;font-size:.875rem;transition:all var(--dur)}
.corte-back:hover{border-color:var(--border2);color:var(--text)}
.corte-ok{flex:2;background:var(--navy);color:#fff;border:none;border-radius:var(--r8);padding:.75rem;font-size:.875rem;font-weight:700;transition:all var(--dur)}
.corte-ok:hover{background:var(--navy2)}

/* ══════════════════════════════════════════════════
   ADMIN (light)
══════════════════════════════════════════════════ */
#v-admin{background:var(--bg)}
.adm-top{height:54px;background:var(--surface);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:.875rem;padding:0 1.125rem;flex-shrink:0;box-shadow:var(--sh)}
.adm-logo-row{display:flex;align-items:center;gap:.5rem}
.adm-logo{width:30px;height:30px;border-radius:50%;object-fit:cover}
.adm-brand{font-size:.4rem;font-weight:800;letter-spacing:-.3px}
.adm-brand .nb{color:var(--navy)}.adm-brand .gb{color:var(--gold)}
.adm-titlabel{font-size:.78rem;color:var(--text3);font-weight:500}
.adm-title{font-size:.875rem;font-weight:600;color:var(--text)}
.adm-sp{flex:1}
.adm-pos-btn{background:var(--navy);color:#fff;border:none;border-radius:var(--r8);padding:.4rem .875rem;font-size:.78rem;font-weight:600;transition:all var(--dur)}
.adm-pos-btn:hover{background:var(--navy2)}
.adm-body{display:flex;flex:1;overflow:hidden}
.adm-sidebar{width:192px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto;flex-shrink:0}
.adm-nav-lbl{font-size:.58rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--text3);padding:.75rem 1.125rem .25rem}
.adm-nav-item{display:flex;align-items:center;gap:.5rem;padding:.525rem 1.125rem;font-size:.8rem;color:var(--text2);cursor:pointer;transition:all var(--dur);border-left:3px solid transparent}
.adm-nav-item:hover{background:rgba(15,43,91,.04);color:var(--text)}
.adm-nav-item.act{background:rgba(15,43,91,.06);color:var(--navy);border-left-color:var(--navy);font-weight:600}
.adm-nav-item svg{width:13px;height:13px;flex-shrink:0}
.adm-main{flex:1;overflow-y:auto;padding:1.375rem}
.adm-main::-webkit-scrollbar{width:5px}
.adm-main::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px}
.adm-sec{display:none}.adm-sec.act{display:block}

/* Admin components */
.adm-ph{margin-bottom:1.125rem}
.adm-ph-title{font-size:1.0625rem;font-weight:700;color:var(--text);letter-spacing:-.3px}
.adm-ph-sub{font-size:.78rem;color:var(--text3);margin-top:.15rem}
.adm-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:.75rem;margin-bottom:1.125rem}
.adm-sc{background:var(--surface);border-radius:var(--r12);border:1px solid var(--border);padding:.875rem;box-shadow:var(--sh);position:relative;overflow:hidden}
.adm-sc::before{content:'';position:absolute;top:0;left:0;right:0;height:3px}
.adm-sc[data-c="navy"]::before{background:var(--navy)}
.adm-sc[data-c="gold"]::before{background:var(--gold)}
.adm-sc[data-c="green"]::before{background:var(--green)}
.adm-sc[data-c="amber"]::before{background:var(--amber)}
.adm-sc[data-c="cyan"]::before{background:var(--cyan)}
.adm-sc[data-c="error"]::before{background:var(--error)}
.adm-sv{font-size:1.5rem;font-weight:800;color:var(--text);letter-spacing:-.75px;font-variant-numeric:tabular-nums}
.adm-sl{font-size:.69rem;color:var(--text3);margin-top:.15rem;font-weight:500}
.adm-st{font-size:.66rem;margin-top:.3rem;font-weight:600}
.adm-st.up{color:var(--green)}.adm-st.dn{color:var(--error)}.adm-st.nt{color:var(--text3)}
.adm-panel{background:var(--surface);border-radius:var(--r12);border:1px solid var(--border);overflow:hidden;box-shadow:var(--sh);margin-bottom:.875rem}
.adm-panel-h{padding:.625rem 1rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:var(--surface)}
.adm-panel-t{font-size:.8375rem;font-weight:700;color:var(--text)}
.adm-panel-a{font-size:.72rem;color:var(--navy);cursor:pointer;font-weight:600}
.adm-tbl{width:100%;border-collapse:collapse}
.adm-tbl th{padding:.4rem .875rem;font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text3);text-align:left;background:var(--surface3);border-bottom:1px solid var(--border)}
.adm-tbl td{padding:.575rem .875rem;font-size:.78rem;color:var(--text);border-bottom:1px solid var(--border)}
.adm-tbl tr:last-child td{border-bottom:none}
.adm-tbl tr:hover td{background:rgba(238,242,247,.5)}
.badge{display:inline-flex;align-items:center;padding:.15rem .45rem;border-radius:999px;font-size:.6rem;font-weight:700}
.b-ok{background:rgba(22,163,74,.1);color:#15803D}
.b-lo{background:rgba(217,119,6,.1);color:#B45309}
.b-ou{background:rgba(220,38,38,.1);color:#B91C1C}
.b-info{background:rgba(0,180,216,.1);color:#0369A1}
.b-navy{background:rgba(15,43,91,.08);color:var(--navy)}
.b-gold{background:rgba(184,145,63,.1);color:var(--gold3)}
.nxid{font-family:monospace;font-size:.68rem;color:var(--text2);background:var(--surface3);padding:.1rem .3rem;border-radius:var(--r4)}
.stock-bar{height:5px;background:var(--border);border-radius:999px;overflow:hidden;width:80px;display:inline-block;vertical-align:middle}
.sb-fill{height:100%;border-radius:999px}
.sb-ok{background:var(--green)}.sb-lo{background:var(--amber)}.sb-ou{background:var(--error)}
.sm-e{background:rgba(22,163,74,.08);color:#15803D;padding:.125rem .4rem;border-radius:var(--r4);font-size:.62rem;font-weight:700}
.sm-t{background:rgba(59,130,246,.08);color:#1D4ED8;padding:.125rem .4rem;border-radius:var(--r4);font-size:.62rem;font-weight:700}
.sm-tr{background:rgba(168,85,247,.08);color:#6D28D9;padding:.125rem .4rem;border-radius:var(--r4);font-size:.62rem;font-weight:700}
.sm-m{background:rgba(217,119,6,.08);color:#B45309;padding:.125rem .4rem;border-radius:var(--r4);font-size:.62rem;font-weight:700}

/* Chart bars */
.chart-bars{display:flex;align-items:flex-end;gap:5px;height:72px;padding:0 .875rem}
.chart-bar{flex:1;background:rgba(15,43,91,.07);border-radius:3px 3px 0 0;transition:background var(--dur);cursor:default;min-width:10px}
.chart-bar:hover{background:rgba(15,43,91,.18)}
.chart-bar[data-peak]{background:rgba(15,43,91,.2)}
.chart-lbls{display:flex;gap:5px;padding:3px .875rem .75rem;margin-top:0}
.chart-lbl{flex:1;text-align:center;font-size:.56rem;color:var(--text3);min-width:10px}
.alert-item{display:flex;align-items:flex-start;gap:.625rem;padding:.625rem .875rem;border-bottom:1px solid var(--border)}
.alert-item:last-child{border-bottom:none}
.alert-ic{width:28px;height:28px;border-radius:var(--r6);display:flex;align-items:center;justify-content:center;font-size:.8rem;flex-shrink:0}
.ai-w{background:var(--amber-bg);color:var(--amber)}
.ai-e{background:var(--error-bg);color:var(--error)}
.ai-i{background:rgba(0,180,216,.08);color:var(--cyan)}
.alert-txt{font-size:.78rem;font-weight:600;color:var(--text);line-height:1.35}
.alert-sub{font-size:.7rem;color:var(--text2);margin-top:.1rem}
.kard-row{display:flex;align-items:center;gap:.75rem;padding:.5rem .875rem;border-bottom:1px solid var(--border)}
.kard-row:last-child{border-bottom:none}
.kard-ts{font-size:.7rem;color:var(--text3);white-space:nowrap;font-variant-numeric:tabular-nums;min-width:120px}
.kard-type{display:inline-flex;padding:.1rem .4rem;border-radius:var(--r4);font-size:.6rem;font-weight:700;white-space:nowrap}
.kt-s{background:rgba(22,163,74,.08);color:#15803D}
.kt-a{background:rgba(217,119,6,.08);color:#B45309}
.kt-i{background:rgba(59,130,246,.08);color:#1D4ED8}
.kard-prod{flex:1;font-size:.78rem;color:var(--text)}
.kard-q{font-size:.78rem;font-weight:700;font-variant-numeric:tabular-nums}
.kard-q.neg{color:var(--error)}.kard-q.pos{color:var(--green)}
.kard-stock{font-size:.75rem;color:var(--text2);min-width:36px;text-align:right;font-variant-numeric:tabular-nums}

/* ── BACKUP BTN ──────────────────────────────── */
.backup-card{background:var(--surface3);border:2px dashed var(--border2);border-radius:var(--r12);padding:1.5rem;text-align:center;margin-top:1rem}
.backup-btn{background:var(--navy);color:#fff;border:none;border-radius:var(--r8);padding:.7rem 1.25rem;font-size:.875rem;font-weight:700;transition:all var(--dur);display:inline-flex;align-items:center;gap:.5rem}
.backup-btn:hover{background:var(--navy2)}

/* ── PRODUCT IMAGE UPLOAD (admin) ─────────────── */
.prod-img-upload{border:2px dashed var(--border);border-radius:var(--r8);padding:1rem;text-align:center;cursor:pointer;transition:all var(--dur);margin-bottom:.875rem}
.prod-img-upload:hover{border-color:var(--navy);background:rgba(15,43,91,.03)}
.prod-img-thumb{width:100%;max-width:120px;height:80px;object-fit:cover;border-radius:var(--r6);margin-bottom:.5rem;display:none}

/* ── AVISO ADMIN ──────────────────────────────── */
.aviso-form{background:var(--surface3);border-radius:var(--r12);padding:1.125rem;margin-bottom:1rem;border:1px solid var(--border)}
.aviso-inp{width:100%;background:var(--surface);border:1.5px solid var(--border);border-radius:var(--r8);padding:.625rem .875rem;font-size:.875rem;color:var(--text);outline:none;transition:border-color var(--dur);margin-bottom:.625rem}
.aviso-inp:focus{border-color:var(--navy)}
.aviso-btn{background:var(--gold);color:#fff;border:none;border-radius:var(--r8);padding:.55rem 1rem;font-size:.78rem;font-weight:700;transition:all var(--dur)}
.aviso-btn:hover{background:var(--gold2)}
.aviso-list{display:flex;flex-direction:column;gap:.375rem}
.aviso-item{background:var(--surface);border-radius:var(--r8);border:1px solid var(--border);padding:.5rem .75rem;display:flex;align-items:center;gap:.5rem;font-size:.78rem;color:var(--text)}
.aviso-del{margin-left:auto;background:var(--error-bg);border:none;color:var(--error);border-radius:var(--r4);width:18px;height:18px;font-size:.625rem;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}


/* css/40-modals-ui.css */
/* ══════════════════════════════════════════════════
   MODALS
══════════════════════════════════════════════════ */
.modal-ov{position:fixed;inset:0;background:rgba(15,43,91,.35);display:flex;align-items:center;justify-content:center;z-index:900;opacity:0;pointer-events:none;transition:opacity .2s ease;backdrop-filter:blur(5px)}
.modal-ov.on{opacity:1;pointer-events:all}
.modal-box{background:var(--surface);border-radius:var(--r16);border:1px solid var(--border);padding:1.625rem;width:460px;max-width:94vw;max-height:90vh;overflow-y:auto;box-shadow:var(--sh-lg);transform:scale(.95);transition:transform .2s ease}
.modal-ov.on .modal-box{transform:scale(1)}
.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.125rem}
.modal-title{font-size:.9375rem;font-weight:700;color:var(--text)}
.modal-x{background:var(--surface3);border:1px solid var(--border);border-radius:var(--r6);width:26px;height:26px;color:var(--text3);display:flex;align-items:center;justify-content:center;font-size:.75rem;transition:background var(--dur)}
.modal-x:hover{background:var(--border)}

/* PAYMENT MODAL */
.pay-tabs{display:flex;gap:.375rem;margin-bottom:1rem;flex-wrap:wrap}
.pay-tab{flex:1;min-width:75px;padding:.5rem .375rem;background:var(--surface3);border:1.5px solid var(--border);border-radius:var(--r8);font-size:.75rem;font-weight:500;color:var(--text2);transition:all var(--dur);text-align:center;cursor:pointer}
.pay-tab:hover{border-color:var(--navy);color:var(--navy)}
.pay-tab.sel{background:rgba(15,43,91,.07);border-color:var(--navy);color:var(--navy);font-weight:700}
.pay-summary{background:var(--surface3);border-radius:var(--r8);border:1px solid var(--border);padding:.875rem;margin-bottom:.875rem}
.pay-srow{display:flex;justify-content:space-between;font-size:.78rem;margin-bottom:.3rem}
.pay-slbl{color:var(--text2)}.pay-sval{font-variant-numeric:tabular-nums;font-weight:500}
.pay-stotal{display:flex;justify-content:space-between;align-items:center;padding-top:.5rem;border-top:1px solid var(--border);margin-top:.3rem}
.pay-stlbl{font-size:.8125rem;font-weight:600;color:var(--text2)}
.pay-stval{font-size:1.375rem;font-weight:800;color:var(--navy);font-variant-numeric:tabular-nums}
.pay-lbl{font-size:.75rem;font-weight:500;color:var(--text2);display:block;margin-bottom:.3rem}
.pay-inp{width:100%;background:var(--surface3);border:1.5px solid var(--border);border-radius:var(--r8);padding:.75rem;font-size:1.25rem;font-weight:700;color:var(--text);text-align:right;outline:none;transition:border-color var(--dur);font-variant-numeric:tabular-nums;margin-bottom:.875rem}
.pay-inp:focus{border-color:var(--navy)}
.pay-quick{display:flex;gap:.375rem;margin-bottom:.875rem;flex-wrap:wrap}
.pay-q{background:var(--surface3);border:1.5px solid var(--border);border-radius:var(--r6);padding:.35rem .625rem;font-size:.73rem;color:var(--text2);transition:all var(--dur)}
.pay-q:hover{border-color:var(--navy);color:var(--navy)}
.pay-change{border-radius:var(--r8);padding:.75rem;display:flex;justify-content:space-between;align-items:center;margin-bottom:.875rem}
.pay-change.ok{background:var(--green-bg);border:1px solid var(--green-br)}
.pay-change.def{background:var(--error-bg);border:1px solid var(--error-br)}
.pay-change-lbl{font-size:.8rem;font-weight:500}
.pay-change.ok .pay-change-lbl{color:var(--green)}.pay-change.def .pay-change-lbl{color:var(--error)}
.pay-change-val{font-size:1.25rem;font-weight:800;font-variant-numeric:tabular-nums}
.pay-change.ok .pay-change-val{color:var(--green)}.pay-change.def .pay-change-val{color:var(--error)}
.pay-mix-grid{display:grid;grid-template-columns:1fr 1fr;gap:.625rem;margin-bottom:.875rem}
.pay-mix-field label{font-size:.72rem;color:var(--text3);display:block;margin-bottom:.25rem}
.pay-mix-field input{width:100%;background:var(--surface3);border:1.5px solid var(--border);border-radius:var(--r8);padding:.55rem .75rem;font-size:.9rem;font-weight:600;color:var(--text);outline:none;transition:border-color var(--dur)}
.pay-mix-field input:focus{border-color:var(--navy)}
.pay-foot{display:flex;gap:.625rem}
.pay-cancel-btn{flex:1;background:var(--surface3);border:1px solid var(--border);color:var(--text2);border-radius:var(--r8);padding:.7rem;font-size:.875rem;transition:all var(--dur)}
.pay-cancel-btn:hover{border-color:var(--border2);color:var(--text)}
.pay-ok-btn{flex:2;background:var(--navy);color:#fff;border:none;border-radius:var(--r8);padding:.7rem;font-size:.9rem;font-weight:700;transition:all var(--dur)}
.pay-ok-btn:hover:not(:disabled){background:var(--navy2)}
.pay-ok-btn:disabled{opacity:.3;pointer-events:none}
.pay-nota{font-size:.7rem;color:var(--text3);text-align:center;margin-top:.625rem}

/* TICKET */
.tkt-box{background:var(--surface);border-radius:var(--r16);border:1px solid var(--border);width:360px;max-width:94vw;max-height:90vh;overflow-y:auto;box-shadow:var(--sh-lg);transform:scale(.95);transition:transform .2s}
.modal-ov.on .tkt-box{transform:scale(1)}
.tkt-head{display:flex;align-items:center;justify-content:flex-end;padding:.625rem .875rem;border-bottom:1px solid var(--border);gap:.375rem}
.tkt-print{background:var(--navy);color:#fff;border:none;border-radius:var(--r8);padding:.4rem .75rem;font-size:.73rem;font-weight:600;transition:all var(--dur)}
.tkt-print:hover{background:var(--navy2)}
.tkt-close{background:var(--surface3);border:1px solid var(--border);color:var(--text2);border-radius:var(--r8);padding:.4rem .75rem;font-size:.73rem}
.tkt-content{padding:1.25rem;font-size:.8125rem}
.tkt-logo-area{text-align:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px dashed var(--border2)}
.tkt-store-logo{width:56px;height:56px;border-radius:50%;object-fit:cover;margin:0 auto .375rem}
.tkt-store-name{font-size:1rem;font-weight:700;color:var(--text)}
.tkt-rfc{font-size:.68rem;color:var(--text3);margin-top:.2rem}
.tkt-hrow{display:flex;justify-content:space-between;font-size:.72rem;margin-bottom:.2rem}
.tkt-hlbl{color:var(--text3)}.tkt-hval{color:var(--text);font-weight:500}
.tkt-items{margin:.875rem 0;padding:.875rem 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.tkt-item{margin-bottom:.5rem}
.tkt-item-name{font-size:.78rem;font-weight:500;color:var(--text)}
.tkt-item-detail{display:flex;justify-content:space-between;font-size:.7rem;color:var(--text3);margin-top:.1rem}
.tkt-trow{display:flex;justify-content:space-between;font-size:.75rem;margin-bottom:.275rem}
.tkt-tlbl{color:var(--text2)}.tkt-tval{font-variant-numeric:tabular-nums;color:var(--text)}
.tkt-grand{display:flex;justify-content:space-between;padding-top:.5rem;border-top:1px solid var(--border2);margin-top:.375rem}
.tkt-glbl{font-weight:700;font-size:.875rem;color:var(--text)}
.tkt-gval{font-size:1.25rem;font-weight:800;color:var(--navy);font-variant-numeric:tabular-nums}
.tkt-pay{background:var(--surface3);border-radius:var(--r8);padding:.625rem .75rem;margin:.875rem 0}
.tkt-prow{display:flex;justify-content:space-between;font-size:.75rem;margin-bottom:.2rem}
.tkt-plbl{color:var(--text3)}.tkt-pval{font-variant-numeric:tabular-nums;font-weight:500;color:var(--text)}
.tkt-pchange{color:var(--navy);font-weight:700}
.tkt-footer{text-align:center;font-size:.7rem;color:var(--text3);line-height:1.6}
.tkt-new{width:100%;background:var(--green);color:#fff;border:none;border-radius:var(--r8);padding:.75rem;font-size:.875rem;font-weight:700;margin-top:.875rem;transition:all var(--dur)}
.tkt-new:hover{filter:brightness(1.08)}
.tkt-num{font-size:.8rem;font-weight:700;color:var(--navy);text-align:center;margin-bottom:.5rem}

/* CONFIRM */
.confirm-box{background:var(--surface);border-radius:var(--r16);border:1px solid var(--error-br);width:340px;max-width:94vw;padding:1.625rem;text-align:center;box-shadow:var(--sh-lg);transform:scale(.95);transition:transform .2s}
.modal-ov.on .confirm-box{transform:scale(1)}
.confirm-icon{font-size:2rem;margin-bottom:.75rem}
.confirm-title{font-size:.9375rem;font-weight:700;color:var(--text);margin-bottom:.375rem}
.confirm-desc{font-size:.8rem;color:var(--text2);line-height:1.5;margin-bottom:1.25rem}
.confirm-foot{display:flex;gap:.625rem}
.confirm-no{flex:1;background:var(--surface3);border:1px solid var(--border);color:var(--text2);border-radius:var(--r8);padding:.7rem;font-size:.875rem;transition:all var(--dur)}
.confirm-no:hover{border-color:var(--border2);color:var(--text)}
.confirm-yes{flex:1;background:var(--error);border:none;color:#fff;border-radius:var(--r8);padding:.7rem;font-size:.875rem;font-weight:700;transition:all var(--dur)}
.confirm-yes:hover{filter:brightness(1.1)}

/* CAMERA MODAL */
.cam-box{background:var(--surface);border-radius:var(--r16);border:1px solid var(--border);width:420px;max-width:94vw;box-shadow:var(--sh-lg);transform:scale(.95);transition:transform .2s;overflow:hidden}
.modal-ov.on .cam-box{transform:scale(1)}
.cam-video{width:100%;aspect-ratio:4/3;object-fit:cover;background:#000;display:block}
.cam-info{padding:.875rem;text-align:center;font-size:.78rem;color:var(--text2)}
.cam-foot{padding:.75rem;border-top:1px solid var(--border);display:flex;gap:.5rem}
.cam-cancel{flex:1;background:var(--surface3);border:1px solid var(--border);color:var(--text2);border-radius:var(--r8);padding:.65rem;font-size:.8rem;transition:all var(--dur)}
.cam-cancel:hover{border-color:var(--border2);color:var(--text)}
.cam-status{font-size:.73rem;color:var(--text3);text-align:center;padding:.375rem;background:var(--surface3)}

/* TOAST */
.toast-box{position:fixed;top:1rem;right:1rem;z-index:9999;display:flex;flex-direction:column;gap:.5rem;pointer-events:none}
.toast{background:var(--surface);border:1px solid var(--border);border-radius:var(--r12);padding:.625rem .875rem;box-shadow:var(--sh-lg);min-width:240px;max-width:320px;display:flex;align-items:flex-start;gap:.5rem;border-left:3px solid var(--green);animation:tIn .25s ease;pointer-events:all}
.toast.warn{border-left-color:var(--amber)}.toast.err{border-left-color:var(--error)}
@keyframes tIn{from{transform:translateX(110%);opacity:0}to{transform:translateX(0);opacity:1}}
.t-ico{font-size:.8125rem;margin-top:.05rem;flex-shrink:0}
.t-title{font-size:.78rem;font-weight:700;color:var(--text)}
.t-msg{font-size:.7rem;color:var(--text2);margin-top:.1rem}

/* RESPONSIVE */
@media(max-width:720px){
  .cat-sb{display:none}
  .cart-panel{width:260px}
  .prod-area{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}
  .pos-store,.pos-datetime{display:none}
  .paybar-lbl{display:none}
}
@media(max-width:520px){
  .cart-panel{position:fixed;right:0;top:var(--header-total);bottom:0;z-index:40;transform:translateX(100%);transition:transform .3s ease;box-shadow:var(--sh-lg)}
  .cart-panel.open{transform:translateX(0)}
  .btn-cart-toggle{display:flex}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}


/* css/50-suite-premium.css */
/* ══════════════════════════════════════════════════
   TIENDAPPS FUSION v2 · Premium Light Suite
══════════════════════════════════════════════════ */
:root{--ta-gold:#C89B42;--ta-gold2:#F0C875;--ta-ink:#102B50;--ta-blue:#2E6FDB;--ta-glow:rgba(46,111,219,.16)}
body::before{content:"";position:fixed;inset:-20%;z-index:-2;pointer-events:none;background:
 radial-gradient(circle at 12% 12%,rgba(240,200,117,.18),transparent 28%),
 radial-gradient(circle at 88% 18%,rgba(46,111,219,.12),transparent 30%),
 linear-gradient(180deg,#fbfdff,#eef3f9)}
.login-card,.ap-card,.adm-panel,.adm-sc,.prod-card,.cart-panel{box-shadow:0 12px 36px rgba(15,43,91,.09),0 1px 2px rgba(15,43,91,.04)}
.login-card,.ap-card{position:relative;overflow:hidden;border:1px solid rgba(200,155,66,.28)}
.login-card::before,.ap-card::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:linear-gradient(90deg,transparent,var(--ta-gold),var(--ta-blue),var(--ta-gold),transparent)}
.adm-sc,.adm-panel,.prod-card,.emp-card,.ap-btn,.pos-admin-btn,.pos-corte-btn,.backup-btn,.suite-btn{transition:transform .22s ease,box-shadow .22s ease,filter .22s ease,border-color .22s ease}
.adm-sc:hover,.prod-card:hover,.emp-card:hover{transform:translateY(-3px);box-shadow:0 16px 34px rgba(15,43,91,.13);border-color:rgba(200,155,66,.38)}
.adm-sc::after,.suite-btn::after,.ap-btn::after,.backup-btn::after{content:"";position:absolute;inset:-180% -80%;background:linear-gradient(100deg,transparent 44%,rgba(255,255,255,.72) 50%,transparent 56%);transform:translateX(-55%) rotate(12deg);transition:transform .7s ease;pointer-events:none}
.adm-sc:hover::after,.suite-btn:hover::after,.ap-btn:hover::after,.backup-btn:hover::after{transform:translateX(55%) rotate(12deg)}
.ap-btn,.backup-btn,.suite-btn{position:relative;overflow:hidden;isolation:isolate}
.suite-btn{border:1px solid rgba(15,43,91,.13);border-radius:12px;background:#fff;color:var(--navy);padding:.65rem .9rem;font-size:.76rem;font-weight:700;box-shadow:0 5px 14px rgba(15,43,91,.08);cursor:pointer}
.suite-btn:hover{transform:translateY(-2px);box-shadow:0 10px 22px rgba(15,43,91,.15)}
.suite-btn.primary{color:#fff;background:linear-gradient(125deg,#0F2B5B,#2E6FDB);border-color:#75a4f2}
.suite-btn.gold{color:#fff;background:linear-gradient(125deg,#8B6A2E,#D9A84C,#F0C875);border-color:#efd6a0}
.suite-btn.danger{color:#b42332;background:#fff4f5;border-color:#ffd0d6}
.suite-toolbar{display:flex;gap:.55rem;align-items:end;flex-wrap:wrap;margin:.8rem 0}
.suite-field{display:flex;flex-direction:column;gap:.28rem;min-width:130px;flex:1}
.suite-field label{font-size:.66rem;text-transform:uppercase;letter-spacing:.6px;font-weight:700;color:var(--text3)}
.suite-field input,.suite-field select,.suite-input{width:100%;border:1px solid var(--border);border-radius:10px;background:#fff;color:var(--text);padding:.62rem .72rem;font-size:.8rem;outline:none;transition:border-color .2s,box-shadow .2s}
.suite-field input:focus,.suite-field select:focus,.suite-input:focus{border-color:#6f99df;box-shadow:0 0 0 3px rgba(46,111,219,.11)}
.suite-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-bottom:.9rem}
.suite-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}
.suite-split{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:.875rem;margin-bottom:.875rem}
.suite-card{background:linear-gradient(155deg,#fff,#fcfdff);border:1px solid var(--border);border-radius:16px;box-shadow:var(--sh-md);padding:1rem;position:relative;overflow:hidden}
.suite-card::before{content:"";position:absolute;left:10%;right:10%;top:0;height:1px;background:linear-gradient(90deg,transparent,rgba(200,155,66,.7),transparent)}
.suite-kpi{min-height:116px}.suite-kpi .v{font-size:1.55rem;line-height:1.05;font-weight:850;color:var(--ink,#142541);font-variant-numeric:tabular-nums;letter-spacing:-.6px;margin:.5rem 0 .18rem}.suite-kpi .l{font-size:.69rem;color:var(--text3);font-weight:600}.suite-kpi .n{font-size:.65rem;color:var(--text2);margin-top:.4rem}.suite-ico{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:10px;background:linear-gradient(145deg,#eef5ff,#fff8e9);box-shadow:inset 0 0 0 1px rgba(15,43,91,.06)}
.suite-chart{height:220px;display:flex;align-items:flex-end;gap:3px;padding:14px 8px 24px;border-bottom:1px solid var(--border);position:relative;overflow-x:auto}
.suite-daybar{height:100%;min-width:17px;flex:1;display:flex;align-items:flex-end;gap:1px;cursor:pointer;position:relative;padding-top:8px}
.suite-daybar:hover{background:rgba(46,111,219,.04);border-radius:6px}
.suite-daybar i{display:block;min-height:2px;border-radius:4px 4px 1px 1px;flex:1;transition:height .35s ease,filter .2s,transform .2s}
.suite-daybar:hover i{filter:saturate(1.2);transform:scaleX(1.08)}
.suite-daybar .sale{background:linear-gradient(180deg,#3f86f5,#2863c2)}.suite-daybar .expense{background:linear-gradient(180deg,#f2bf68,#c98d2f)}.suite-daybar .profit{background:linear-gradient(180deg,#4ac6a5,#1b8c70)}
.suite-daybar b{position:absolute;bottom:-18px;left:50%;transform:translateX(-50%);font-size:.52rem;color:var(--text3);font-weight:600}
.suite-legend{display:flex;gap:1rem;flex-wrap:wrap;font-size:.68rem;color:var(--text2);margin-top:.7rem}.suite-legend span::before{content:"";display:inline-block;width:8px;height:8px;border-radius:3px;margin-right:5px}.suite-legend .lg-sales::before{background:#3778df}.suite-legend .lg-exp::before{background:#dba347}.suite-legend .lg-profit::before{background:#28a083}
.suite-table-wrap{overflow:auto}.suite-table{width:100%;border-collapse:collapse;min-width:640px}.suite-table th{font-size:.6rem;text-transform:uppercase;letter-spacing:.65px;color:var(--text3);text-align:left;padding:.52rem .65rem;background:var(--surface3);border-bottom:1px solid var(--border)}.suite-table td{font-size:.75rem;padding:.6rem .65rem;border-bottom:1px solid var(--border);vertical-align:middle}.suite-table tr:hover td{background:#f8fbff}
.suite-note{background:linear-gradient(135deg,#f1f7ff,#fffaf0);border:1px solid #dfe9f6;border-radius:12px;padding:.75rem .85rem;font-size:.72rem;color:var(--text2);line-height:1.5;margin:.7rem 0}
.sync-dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:#94a3b8;box-shadow:0 0 0 4px rgba(148,163,184,.1)}.sync-dot.ok{background:#16a34a;box-shadow:0 0 0 4px rgba(22,163,74,.1)}.sync-dot.warn{background:#d97706;box-shadow:0 0 0 4px rgba(217,119,6,.12)}.sync-dot.err{background:#dc2626;box-shadow:0 0 0 4px rgba(220,38,38,.1)}
.sync-chip{display:inline-flex;align-items:center;gap:.45rem;padding:.3rem .55rem;border:1px solid var(--border);border-radius:999px;background:#fff;font-size:.66rem;color:var(--text2)}
.adm-nav-item.role-root{display:none!important}body.role-root .adm-nav-item.role-root{display:flex!important}body.role-cashier .admin-only{display:none!important}
.adm-nav-item[data-s="root"]{color:#7b4f00;background:linear-gradient(135deg,#fff9ea,#fff)}
.wh-card{min-height:150px}.wh-stock{font-size:1.5rem;font-weight:850;color:var(--navy)}
.inline-actions{display:flex;gap:.45rem;flex-wrap:wrap}
.mobile-admin-strip{display:none}
.premium-glow{position:fixed;pointer-events:none;width:420px;height:420px;border-radius:50%;filter:blur(70px);opacity:.33;z-index:-1;background:linear-gradient(135deg,#d7e8ff,#f8dfab);right:-220px;top:18%}
@media(max-width:1000px){.suite-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.suite-grid-3{grid-template-columns:1fr 1fr}.suite-split{grid-template-columns:1fr}}
@media(max-width:760px){.suite-grid,.suite-grid-3{grid-template-columns:1fr}.adm-sidebar{width:185px}.adm-main{padding:.75rem}.suite-chart{height:190px}.adm-top{padding:0 .7rem}.adm-titlabel{display:none}}
@media(max-width:600px){.adm-sidebar{position:fixed;left:0;right:0;bottom:0;top:auto;width:auto;height:58px;z-index:160;display:flex;overflow-x:auto;overflow-y:hidden;border-right:0;border-top:1px solid var(--border);padding:.35rem;background:rgba(255,255,255,.96);backdrop-filter:blur(12px)}.adm-nav-lbl{display:none}.adm-nav-item{flex:0 0 auto;padding:.55rem .7rem;border-radius:10px;white-space:nowrap;font-size:.68rem}.adm-nav-item svg{width:15px;height:15px}.adm-main{padding:.7rem .7rem 70px}.adm-body{overflow:auto}.adm-top{height:52px}.adm-logo-row .adm-brand,.adm-titlabel{display:none}.adm-title{font-size:.78rem}.adm-pos-btn{padding:.35rem .55rem;font-size:.68rem}}


/* css/60-effects.css */
/* TiendApps Modular v3 · premium interaction layer */
:root{--ta-gold-glow:rgba(201,155,66,.24);--ta-blue-glow:rgba(46,111,219,.18);--ta-card-shadow:0 18px 44px rgba(15,43,91,.10),0 3px 10px rgba(15,43,91,.05)}
body{background:radial-gradient(circle at 88% -10%,rgba(69,127,224,.13),transparent 32%),radial-gradient(circle at 8% 108%,rgba(218,171,86,.12),transparent 28%),var(--bg)}
.login-panel,.ap-card,.adm-panel,.suite-card,.prod-card,.cart-panel,.paymodal,.ticket{box-shadow:var(--ta-card-shadow)}
.login-panel,.ap-card,.suite-card,.adm-panel{backdrop-filter:saturate(1.04)}
.login-panel::after,.ap-card::after,.suite-card::after,.adm-panel::after{content:"";position:absolute;pointer-events:none;inset:0;border-radius:inherit;background:linear-gradient(125deg,rgba(255,255,255,.32),transparent 32%,transparent 72%,rgba(198,151,57,.035));mix-blend-mode:screen}
.login-panel,.ap-card,.suite-card,.adm-panel{position:relative;overflow:hidden}
.emp-card,.prod-card,.adm-nav-item,.suite-btn,.ap-btn,.pay-btn,.pos-admin-btn,.pos-corte-btn{will-change:transform}
.emp-card:hover,.prod-card:hover{transform:translateY(-4px) scale(1.012);box-shadow:0 18px 32px rgba(15,43,91,.14)}
.suite-btn,.ap-btn,.pay-btn{transition:transform .18s ease,box-shadow .22s ease,filter .18s ease}
.suite-btn:active,.ap-btn:active,.pay-btn:active{transform:translateY(1px) scale(.975)}
.suite-btn.primary,.ap-btn.primary{box-shadow:0 12px 24px rgba(46,111,219,.27),inset 0 1px rgba(255,255,255,.35)}
.suite-btn.gold{box-shadow:0 12px 24px var(--ta-gold-glow),inset 0 1px rgba(255,255,255,.42)}
.adm-nav-item.act{box-shadow:0 8px 18px rgba(15,43,91,.18),inset 0 1px rgba(255,255,255,.18)}
.sync-chip{box-shadow:inset 0 0 0 1px rgba(15,43,91,.04),0 4px 12px rgba(15,43,91,.05)}
@media(hover:none){.emp-card:hover,.prod-card:hover{transform:none}}
@media(prefers-reduced-motion:reduce){.emp-card,.prod-card,.suite-btn,.ap-btn,.pay-btn{transition:none!important;transform:none!important}}


/* Inicio claro estilo card, inspirado en la identidad oficial TiendApps */
#v-login,#v-apertura{background:radial-gradient(circle at 50% -20%,rgba(224,178,84,.20),transparent 34%),linear-gradient(155deg,#fafdff,#eef4fb 55%,#fffaf0);}
.login-card{max-width:520px;border:1px solid rgba(184,145,63,.34);padding:1.6rem;background:rgba(255,255,255,.96);box-shadow:0 30px 70px rgba(15,43,91,.16),0 0 0 1px rgba(255,255,255,.75) inset}
.login-logo{width:116px;height:116px;filter:drop-shadow(0 12px 15px rgba(15,43,91,.13))}
.login-brand{font-size:1.75rem;letter-spacing:-1px}.login-tagline{letter-spacing:2.2px;color:#7d6a43}
.login-clock-card{margin:-.3rem -1.75rem 1.2rem;padding:1rem 1.2rem;background:linear-gradient(120deg,#183a67,#3f6590);color:#fff;text-align:center;box-shadow:inset 0 1px rgba(255,255,255,.18)}
.login-time{font-size:clamp(2.3rem,7vw,3.9rem);font-weight:850;letter-spacing:-2px;line-height:1}.login-date{margin-top:.35rem;font-size:.82rem;text-transform:capitalize;opacity:.92}
.ap-card{border:1px solid rgba(184,145,63,.30);box-shadow:0 28px 60px rgba(15,43,91,.15)}
@media(max-width:560px){.login-card{margin:.55rem;padding:1.2rem}.login-clock-card{margin:-.1rem -1.2rem 1rem}.login-logo{width:92px;height:92px}.login-brand{font-size:1.45rem}}


/* css/70-upgrade.css */
/* TiendApps 3.1 — responsive portal and daily operation */
:root{--banner-h:68px}
#v-login,#v-apertura{overflow-y:auto;justify-content:flex-start;padding:20px 12px max(20px,env(safe-area-inset-bottom));}
.login-card,.ap-card{flex-shrink:0;margin:auto;width:min(100%,520px)}
.login-card{padding-top:52px}.root-info{position:absolute;right:14px;top:12px;border:1px solid #dfd7c7;border-radius:12px;padding:6px 10px;background:#fff;color:#19365b;font-weight:700}.root-info span{color:#ad8236;font-size:20px}
.login-footer{text-align:center;line-height:1.6;font-size:12px;color:#63718a;padding-top:16px}.login-clock-card{margin-left:0;margin-right:0;border-radius:14px}.login-logo-area{margin-bottom:18px}.pin-pad{flex-shrink:0}.login-time{letter-spacing:-1px;font-size:clamp(2rem,8vw,3.5rem)}
#ti-splash{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:28px;overflow:hidden;background:radial-gradient(ellipse at 50% 45%,#254d79 0%,#0c203a 45%,#040b16 100%);color:#edcc8b;transition:opacity .65s,visibility .65s}
#ti-splash::before,#ti-splash::after{content:'';position:absolute;width:80vw;height:1px;background:linear-gradient(90deg,transparent,#f6d78b,transparent);transform:rotate(-35deg);box-shadow:0 0 40px 8px #caa25233;animation:splashSweep 3s ease-in-out infinite}
#ti-splash::after{transform:rotate(35deg);animation-delay:.7s}
#ti-splash img{z-index:1;width:min(62vw,310px);aspect-ratio:1;object-fit:cover;border-radius:50%;box-shadow:0 0 0 8px #e7c37f18,0 0 80px #cda34c66;animation:splashReveal 1.5s cubic-bezier(.16,1,.3,1) both}
#ti-splash p{z-index:1;font-size:clamp(10px,2.6vw,13px);letter-spacing:3px}#ti-splash button{z-index:1;background:transparent;color:#f7dfa8;border:1px solid #e8c57d66;padding:10px 26px;border-radius:99px}.splash-orbit{position:absolute;width:min(85vw,440px);aspect-ratio:1;border:1px solid #d5ad5650;border-radius:50%;border-top-color:#ffedbc;animation:orbit 6s linear infinite}.splash-line{width:150px;height:2px;background:linear-gradient(90deg,transparent,#ecca85,transparent);animation:splashSweep 2s infinite}
#ti-splash.dismissed{opacity:0;visibility:hidden;pointer-events:none}@keyframes orbit{to{transform:rotate(360deg)}}@keyframes splashReveal{from{opacity:0;transform:scale(.65) translateY(30px);filter:blur(12px)}to{opacity:1;transform:none;filter:blur(0)}}@keyframes splashSweep{50%{opacity:.25}}
.pos-topbar,.pos-paybar,.pos-totbar{overflow-x:auto;overflow-y:hidden;white-space:nowrap;touch-action:pan-x;scrollbar-width:thin;max-width:100%;position:relative;top:auto}.pos-topbar>*,.pos-paybar>*,.pos-totbar>*{flex-shrink:0}.pos-store{max-width:none}.pos-topbar{min-height:62px}.pos-paybar{min-height:54px}.pos-banner{position:relative;top:auto}.banner-msg{font-size:1.46rem;color:#f2f5fb}.banner-icon{font-size:1.75rem}.pos-body{height:auto;flex:1;min-height:0}.prod-area{min-width:0}.pos-totbar{min-height:58px}.pos-topbar .pos-search-wrap{min-width:220px}
.ta-modal{width:min(720px,100%);max-height:90dvh;overflow:auto;background:#fff;border-radius:22px;padding:22px;box-shadow:0 28px 80px #081c3e44}.ta-modal h2{font-size:21px;margin:0}.ta-modal header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px}.ta-modal p{line-height:1.65;margin:12px 0;color:#53627b}.ta-modal label{display:block;font-size:13px;font-weight:600;margin:12px 0 6px}.ta-modal .suite-input{width:100%;min-height:44px;font-size:16px}.ta-actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.ta-result{width:100%;padding:14px;border:1px solid #e2e8f0;border-radius:12px;background:#f8fafc;margin:5px 0;text-align:left;display:flex;justify-content:space-between;gap:14px;font-size:15px}.ta-result small{display:block;color:#687891;margin-top:4px}.ta-calc{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.ta-calc button{padding:16px;font-size:20px;border:1px solid #d6dfed;background:#f3f6fb;border-radius:10px}.ta-calc output{grid-column:1/-1;text-align:right;padding:18px;background:#122c50;color:#fff;font-size:28px;border-radius:12px;overflow-wrap:anywhere}.ta-row{padding:14px;border:1px solid #dfe6ef;border-radius:12px;margin:10px 0}.ta-row .suite-input{margin:5px 0}.ta-status{font-size:13px;color:#785a23;background:#fff4d9;padding:12px;border-radius:10px}.ta-two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:760px){.pos-body{display:block;overflow-y:auto;padding-bottom:calc(64px + env(safe-area-inset-bottom))}.cat-sb{position:fixed;bottom:0;left:0;right:0;width:100%;height:calc(58px + env(safe-area-inset-bottom));padding:6px 8px max(6px,env(safe-area-inset-bottom));display:flex;gap:6px;overflow-x:auto;overflow-y:hidden;z-index:170;background:#ffffffed;backdrop-filter:blur(18px);border-top:1px solid #d4ddea;touch-action:pan-x}.cat-item{flex:0 0 auto;min-height:42px;border-radius:10px;padding:8px 12px;white-space:nowrap;font-size:14px}.cat-emoji{font-size:17px}.prod-area{overflow:visible;grid-template-columns:repeat(2,minmax(0,1fr));padding:10px;gap:10px}.cart-panel{width:100%;border:0;border-top:1px solid #d5dfeb;min-height:160px}.cart-list{max-height:none;overflow:visible}.pos-topbar,.pos-paybar,.pos-totbar{padding-left:12px;padding-right:12px}.pos-topbar .pos-brand{display:block}.pos-clock{font-size:20px}.pos-store{font-size:15px;min-width:140px}.pos-logo-img{width:38px;height:38px}.pos-paybar button{font-size:14px;min-height:40px}.pos-totbar button{min-height:40px}.ta-modal{padding:18px;max-height:92dvh}.modal-ov{padding:12px}.ta-two{grid-template-columns:1fr}.login-card{padding:50px 18px 18px}.login-logo{width:90px;height:90px}.emp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pin-btn{min-height:46px}.toast-box{bottom:calc(75px + env(safe-area-inset-bottom));max-width:calc(100vw - 24px)}}
@media(prefers-reduced-motion:reduce){#ti-splash *,#ti-splash::before,#ti-splash::after{animation:none!important}.banner-track{animation-duration:90s}}
@media(max-width:760px){.pos-store,.pos-datetime{display:block}.cart-panel{position:static;transform:none;box-shadow:none;right:auto;top:auto;bottom:auto}.btn-cart-toggle{display:none}}
@media(max-width:760px){#v-login{padding:10px}.login-card{padding:46px 16px 14px}.login-logo{width:64px;height:64px}.login-logo-area{gap:4px;margin-bottom:10px}.login-brand{font-size:1.35rem}.login-tagline{font-size:10px;letter-spacing:1.5px}.login-clock-card{padding:12px;margin-bottom:12px}.login-time{font-size:2.25rem}.login-date{font-size:12px}.emp-grid{margin-bottom:12px;gap:8px}.emp-card{padding:8px}.emp-av{width:32px;height:32px;margin-bottom:4px}.login-label{margin-bottom:6px}.pin-box{padding:12px}.pin-title,.pin-dots{margin-bottom:8px}.pin-err{margin-top:6px;min-height:14px}.login-footer{padding-top:6px;font-size:11px}.pin-btn{height:44px;min-height:44px}}
.cat-item{border:0;text-align:left;font-family:inherit;cursor:pointer;background:transparent}.cat-item.act{background:#eaf0fa;color:var(--navy)}
.import-preview .suite-table{margin:12px 0}.import-error{color:#b3261e}.import-issues{max-height:220px;overflow:auto;padding-left:1.1rem;font-size:.8rem}.import-issues li{margin:.35rem 0}.import-issues .imp-err{color:#b3261e}.import-issues .imp-warn{color:#785a23}.import-ready-note{margin-bottom:12px}


/* css/71-cashier-layout.css */
/* 3.1.1: mobile sale above the catalogue; each panel scrolls independently. */
@media (max-width:760px) {
  #v-pos { height:100vh; height:100dvh; bottom:auto; }
  #v-pos .pos-body {
    display:grid;
    grid-template-columns:minmax(0,1fr);
    /* Existing header bars total 242px. The sale ends at or before mid-screen
       on normal portrait phones, while reserving usable space on short ones. */
    grid-template-rows:clamp(80px,calc(50vh - 250px),180px) minmax(0,1fr);
    grid-template-rows:clamp(80px,calc(50dvh - 250px),180px) minmax(0,1fr);
    gap:0;
    overflow:hidden;
    padding:0 0 calc(58px + env(safe-area-inset-bottom));
    min-height:0;
  }
  #v-pos .cart-panel {
    grid-row:1; grid-column:1;
    min-height:0; height:100%; max-height:none; width:100%;
    position:static; transform:none;
    overflow:hidden;
    border:0; border-bottom:1px solid var(--border);
    box-shadow:0 3px 10px rgba(15,43,91,.06);
  }
  #v-pos .cart-head { flex:0 0 auto; padding:6px 12px; min-height:36px; }
  #v-pos .cart-list {
    min-height:0; flex:1 1 0; max-height:none;
    overflow-y:auto; overflow-x:hidden;
    overscroll-behavior-y:contain; touch-action:pan-y;
    -webkit-overflow-scrolling:touch; scrollbar-width:thin;
  }
  #v-pos .cart-list::-webkit-scrollbar { width:3px; }
  #v-pos .cart-list::-webkit-scrollbar-thumb { background:var(--border2);border-radius:4px; }
  #v-pos .cart-item { padding:5px 12px; }
  #v-pos .ci-r1 { margin-bottom:3px; }
  #v-pos .ci-q-btn { width:32px; height:30px; }
  #v-pos .ci-del { width:28px; height:28px; }
  #v-pos .cart-empty { min-height:0; flex-direction:row; gap:8px; padding:6px; }
  #v-pos .cart-empty svg { width:24px; height:24px; }
  #v-pos .prod-area {
    grid-row:2; grid-column:1;
    min-width:0; min-height:0; height:100%;
    overflow-y:auto; overflow-x:hidden;
    overscroll-behavior-y:contain; touch-action:pan-y;
    -webkit-overflow-scrolling:touch;
    grid-template-columns:repeat(3,minmax(0,1fr));
    grid-auto-rows:max(128px,calc((100% - 8px)/2));
    align-content:start; gap:8px; padding:8px;
  }
  #v-pos .prod-card { min-width:0; min-height:0; height:100%; }
  #v-pos .pc-img-wrap { aspect-ratio:auto; flex:1 1 0; min-height:32px; font-size:28px; }
  #v-pos .pc-img { object-fit:contain; padding:3px; }
  #v-pos .pc-body { flex:0 0 auto; padding:5px 6px 6px; gap:2px; }
  #v-pos .pc-name { font-size:11px; line-height:1.25; height:2.5em; max-height:2.5em; }
  #v-pos .pc-sku { font-size:10px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  #v-pos .pc-price { font-size:15px; margin:0; }
  #v-pos .pc-stock { gap:3px; margin:0; }
  #v-pos .pc-stxt { font-size:10px; white-space:nowrap; }
}


/* css/72-refinements.css */
.root-info{display:flex;align-items:center;gap:7px;cursor:pointer}.root-info img{width:34px;height:34px;object-fit:contain;border-radius:50%}
.about-brand{display:flex;align-items:center;gap:18px}.about-brand img{width:90px;height:90px;object-fit:contain;border-radius:50%}.about-brand p{margin:0}
.login-sound{display:block;margin:10px auto 0}.pay-words,.tkt-words{font-size:.78rem;line-height:1.5;color:var(--text2);margin:8px 0;white-space:normal;overflow-wrap:anywhere}.pay-quick{flex-wrap:wrap}.pay-q{min-height:38px}
.stock-state{display:inline-flex;align-items:center;gap:6px;font-size:12px;white-space:nowrap}.stock-state::before{content:'';width:10px;height:10px;border-radius:50%;background:var(--stock-color)}.stock-green{--stock-color:#15803d}.stock-yellow{--stock-color:#ca8a04}.stock-red{--stock-color:#dc2626}
.stock-product{border:1px solid var(--border);border-radius:12px;padding:14px;margin:12px 0}.stock-product h3{font-size:16px;margin:0 0 4px}.stock-product small{display:block;color:var(--text2);margin:4px 0}.stock-product .suite-table td,.stock-product .suite-table th{padding:8px}.stock-product .suite-table{min-width:380px}.order-meta{font-size:12px;color:var(--text2)}.order-heading{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:space-between}
@media(max-width:760px){.root-info img{width:28px;height:28px}.about-brand img{width:70px;height:70px}.about-brand{gap:12px}.stock-product{padding:10px}}


/* css/73-dictation.css */
.voice-status{padding:12px 14px;border-radius:12px;background:#eef3f9;color:#19365b;font-size:14px;line-height:1.5;min-height:46px}
.voice-status.listening{background:#e8f5ed;color:#166534;border-left:4px solid #22a35a}
.voice-result b{font-size:13px;white-space:nowrap}.voice-result:disabled{opacity:.65;cursor:not-allowed}
#m-dictation{z-index:520}#m-dictation .ta-modal{max-width:650px}#voice-query{margin:6px 0;font-size:17px}
#m-dictation button:focus-visible,#m-dictation input:focus-visible{outline:3px solid #2b6cb0;outline-offset:2px}
@media(max-width:760px){.voice-result{align-items:flex-start;flex-direction:column;gap:5px}.voice-result b{white-space:normal}}


/* css/74-access-scan.css */
/* 3.5.1: compact access, an always visible camera shortcut and touch panning. */
html,body,body *{touch-action:pan-x pan-y}
#v-login{height:100vh;height:100dvh;bottom:auto;overflow-x:hidden;overflow-y:auto;justify-content:flex-start;padding:max(10px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));-webkit-overflow-scrolling:touch;touch-action:pan-y}
.login-card{width:min(100%,440px);max-width:440px;margin:auto;padding:58px 20px 14px;flex-shrink:0}
.login-card .root-info{top:9px;right:14px;width:44px;height:44px;padding:3px;justify-content:center;border-radius:50%;background:transparent;border:0}
.login-card .root-info img{width:38px;height:38px;border-radius:50%}
.login-card .login-sound{position:absolute;left:14px;top:9px;margin:0;min-height:44px;padding:6px 10px;font-size:12px}
.login-logo-area{margin-bottom:12px;gap:4px}
.login-logo{width:72px;height:72px}
.login-brand{font-size:1.5rem}
.login-tagline{font-size:10px;letter-spacing:1.2px}
.login-clock-card{margin:0 0 12px;padding:10px 8px;border-radius:14px}
.login-time{display:flex;align-items:baseline;justify-content:center;gap:8px;font-size:2.25rem;letter-spacing:-1px;line-height:1.05}
.login-time strong{font-weight:850;font-variant-numeric:tabular-nums}
.login-period{font-size:1rem;font-weight:500;letter-spacing:0}
.login-date{font-size:12px;line-height:1.4;text-transform:none;margin-top:5px}
.login-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin-bottom:12px}
.login-fields>div{min-width:0}
.login-label{display:block;font-size:10px;letter-spacing:.5px;margin-bottom:6px}
.login-fields .suite-input{width:100%;height:44px;min-height:44px;margin:0;padding:8px;font-size:16px}
#dev-login-hint{font-size:12px;line-height:1.4}
#dev-login-hint .suite-btn{margin-top:4px}
.pin-box{padding:10px}
.pin-title{margin-bottom:6px}
.pin-dots{margin-bottom:8px}
.pin-pad{gap:6px}
.pin-btn{height:44px;min-height:44px;font-size:18px}
.pin-err{min-height:14px;margin-top:6px;line-height:1.3}
.login-footer{padding-top:8px;font-size:10.5px;line-height:1.4;text-align:center;color:var(--text2)}
.root-info:focus-visible,.pos-scan-btn:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}

.pos-topbar{height:auto;min-height:66px;overflow:visible;gap:14px;padding:8px 12px}
.pos-identity{display:flex;align-items:center;gap:10px;flex:0 0 auto;min-width:0}
.pos-identity .pos-store{min-width:0;max-width:220px}
.pos-topbar .pos-scan-btn{width:auto;min-width:164px;height:48px;gap:9px;padding:8px 13px;background:linear-gradient(135deg,var(--navy),var(--navy2));border:2px solid var(--gold);border-radius:12px;color:#fff;font-size:15px;font-weight:750;box-shadow:0 4px 12px rgba(15,43,91,.18);white-space:nowrap}
.pos-scan-btn svg{flex-shrink:0}
.pos-topbar .pos-scan-btn:hover{background:var(--navy3);border-color:var(--gold2);color:#fff}
.pos-topbar .pos-scan-btn:active{transform:translateY(1px)}
.pos-tools{display:flex;align-items:center;gap:8px;flex:1 1 0;min-width:0;min-height:48px;overflow-x:auto;overflow-y:hidden;white-space:nowrap;touch-action:pan-x;scrollbar-width:thin}
.pos-tools>*{flex-shrink:0}
.pos-tools .pos-search-wrap{flex:1 0 220px;max-width:280px}

@media(max-width:760px),(max-height:740px){
  .login-card .login-logo-area{display:grid;grid-template-columns:56px minmax(0,1fr);grid-template-rows:auto auto;column-gap:12px;row-gap:2px;text-align:left;align-items:center}
  .login-logo{width:56px;height:56px;grid-column:1;grid-row:1/3}
  .login-brand{grid-column:2;grid-row:1;align-self:end;font-size:1.45rem}
  .login-tagline{grid-column:2;grid-row:2;align-self:start;font-size:9px;letter-spacing:.8px;line-height:1.4}
}
@media(max-width:760px){
  .login-card{padding-left:14px;padding-right:14px}
  .login-fields{gap:10px}
  .pos-topbar{flex-direction:column;align-items:stretch;gap:5px;padding:6px 10px}
  .pos-identity{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;min-height:52px;flex:none;width:100%}
  .pos-identity .pos-sep{display:none}
  .pos-identity .pos-logo-wrap{flex-direction:column;gap:2px}
  .pos-identity .pos-logo-img{width:32px;height:32px}
  .pos-identity .pos-brand{display:block;font-size:10px}
  .pos-identity .pos-store{font-size:13px;line-height:1.25;white-space:normal;overflow-wrap:anywhere;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;max-width:none;min-width:0}
  .pos-topbar .pos-scan-btn{min-width:0;width:142px;height:50px;padding:6px 9px;gap:7px;font-size:13px;white-space:normal;line-height:1.2}
  .pos-scan-btn span{max-width:84px;text-align:left}
  .pos-tools{flex:none;width:100%;min-height:44px}
  .pos-tools .pos-search-wrap{flex:0 0 calc(100% - 108px);min-width:180px;max-width:none}
  .pos-tools .pos-corte-btn{min-height:40px;font-size:13px}
  .pos-tools .pos-search{height:40px;font-size:16px}
  #v-pos .pos-body{grid-template-rows:clamp(80px,calc(50vh - 270px),180px) minmax(0,1fr);grid-template-rows:clamp(80px,calc(50dvh - 270px),180px) minmax(0,1fr)}
}
@media(pointer:coarse){
  input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:max(16px,1em)}
}


/* css/75-ticket-team.css */
/* Long receipts, real printing and employee cards. */
.tkt-box{width:400px;max-width:96vw;max-height:92vh;max-height:92dvh;background:#fff}
.tkt-head{position:sticky;top:0;z-index:2;background:#fff;flex-wrap:wrap;justify-content:center;padding:10px;gap:6px}
.tkt-head button{min-height:40px;font-size:12px}
.tkt-content{padding:22px 24px;background:#fff}
.tkt-service-status{font-size:11px;line-height:1.5;padding:9px 14px;margin:0;background:#f2f5f8;color:#46556a}
.tkt-service-status[hidden],.employee-photo-preview[hidden]{display:none}
.pos-emp-chip{font-family:inherit;cursor:pointer;min-height:38px}
.pos-emp-chip:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}
.pos-emp-av img,.emp-list-photo{width:100%;height:100%;object-fit:cover;border-radius:50%}
.emp-list-avatar{display:flex;align-items:center;justify-content:center;flex:0 0 38px;width:38px;height:38px;border-radius:50%;overflow:hidden;background:#0f2b5b;color:#fff;font-size:12px;font-weight:700}
.employee-card{max-width:440px;margin:8px auto 12px;border:1px solid #dccb9d;border-radius:20px;overflow:hidden;background:linear-gradient(145deg,#fff,#f5f8fc);text-align:center;box-shadow:0 14px 35px rgba(15,43,91,.12)}
.employee-card-header{display:flex;align-items:center;justify-content:center;gap:12px;background:linear-gradient(135deg,#0f2b5b,#1a3a6e);padding:22px 18px;color:#fff;border-bottom:4px solid #b8913f}
.employee-card-header img{width:48px;height:48px;object-fit:contain;border-radius:50%}
.employee-card-company{font-size:19px;font-weight:750;line-height:1.3;overflow-wrap:anywhere}
.employee-card-header small{display:block;margin-top:4px;font-size:10px;letter-spacing:1.4px;color:#f0d591}
.employee-card-photo{width:150px;height:150px;margin:24px auto 16px;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:50%;border:3px solid #b8913f;padding:4px;background:#fff;color:#0f2b5b;font-size:38px;font-weight:750;box-shadow:0 8px 20px rgba(15,43,91,.12)}
.employee-card-photo img{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:center 30%}
.employee-card-name{font-size:24px;font-weight:750;color:#0f2b5b;margin:0 18px 6px;overflow-wrap:anywhere}
.employee-card-role{display:inline-block;background:#eaf0f8;border-radius:999px;padding:6px 18px;color:#0f2b5b;font-size:14px;font-weight:650}
.employee-card-id{font-size:11px;color:#59687a;margin:15px 16px 22px}
.employee-card-footer{border-top:1px solid #e2e8f0;padding:13px;color:#826426;font-size:10px;letter-spacing:.8px}
.employee-photo-preview{display:block;width:110px;height:110px;object-fit:cover;border-radius:16px;margin:10px 0;border:1px solid var(--border)}
.employee-form label{display:block;margin:12px 0 5px;font-size:13px;font-weight:600}
.employee-form .ta-actions label{display:flex;align-items:center;gap:8px;font-weight:400}
.employee-form .suite-input{margin:0}
.employee-photo-note{font-size:12px;line-height:1.5;color:var(--text2)}
@media(max-width:400px){.tkt-content{padding:18px}.employee-card-name{font-size:21px}}
@media print{
  @page{size:auto;margin:3mm}
  html{height:auto!important;overflow:visible!important;background:#fff!important}
  body.printing-ticket{height:auto!important;overflow:visible!important;background:#fff!important;color:#000!important}
  body.printing-ticket>*:not(#m-ticket){display:none!important}
  body.printing-ticket #m-ticket{display:block!important;position:static!important;inset:auto!important;height:auto!important;max-height:none!important;overflow:visible!important;opacity:1!important;padding:0!important;background:none!important;backdrop-filter:none!important}
  body.printing-ticket .tkt-box{display:block!important;position:static!important;width:74mm;max-width:100%!important;max-height:none!important;height:auto!important;overflow:visible!important;transform:none!important;box-shadow:none!important;border:0!important;border-radius:0!important;margin:0 auto!important}
  body.printing-ticket .tkt-content{padding:0!important;overflow:visible!important;height:auto!important;max-height:none!important}
  body.printing-ticket .tkt-head,body.printing-ticket .tkt-service-status,body.printing-ticket .tkt-new{display:none!important}
  body.printing-ticket .receipt-sheet{print-color-adjust:exact;-webkit-print-color-adjust:exact}
}


/* css/76-admin-access.css */
/* Supplied pastel palette on the 12 keys. Enter remains a separate action. */
#pin-pad .pin-btn:not(.enter){background:var(--pin-color);background:linear-gradient(145deg,rgba(255,255,255,.70),rgba(255,255,255,0)),var(--pin-color);color:#080808;border:1px solid rgba(0,0,0,.16);font-size:22px;font-weight:750;box-shadow:0 2px 3px rgba(15,43,91,.08)}
#pin-pad .pin-btn:not(.enter):hover{filter:brightness(.96)}
#pin-pad .pin-btn:focus-visible{outline:3px solid var(--navy);outline-offset:2px}
#v-admin .adm-sidebar{display:none!important}
#v-admin .adm-body{display:block;min-height:0;flex:1;overflow:hidden}
#v-admin .adm-main{height:100%;overflow-y:auto;width:100%;padding:18px;max-width:1300px;margin:0 auto;-webkit-overflow-scrolling:touch}
#v-admin .adm-top{height:auto;min-height:60px;flex-wrap:wrap;gap:8px;padding:10px 16px}
.admin-home-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 20px}
.admin-home-head h2{font-size:1.4rem;color:var(--navy);margin:0 0 4px}
.admin-home-head p{font-size:.88rem;color:var(--text2);margin:0}
.admin-menu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;padding-bottom:24px}
.admin-tile{display:flex;flex-direction:column;align-items:flex-start;gap:8px;text-align:left;border:1px solid var(--border);border-top:4px solid var(--tile-color,var(--gold));border-radius:16px;padding:18px;min-height:145px;background:var(--surface);box-shadow:0 4px 12px rgba(15,43,91,.05);color:var(--text);cursor:pointer;white-space:normal}
.admin-tile:hover{box-shadow:0 6px 18px rgba(15,43,91,.12);transform:translateY(-1px)}
.admin-tile:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
.admin-tile .tile-icon{font-size:27px;line-height:1.2}
.admin-tile b{font-size:16px;color:var(--navy)}
.admin-tile small{font-size:12px;line-height:1.45;color:var(--text2)}
.cashier-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin:15px 0}
.day-checks{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0}
.directory-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.directory-form label{font-size:13px;display:block}
.directory-form input,.directory-form textarea,.directory-form select{display:block;width:100%;margin-top:5px}
.directory-form .wide{grid-column:1/-1}
.results-days{margin-top:16px}
.result-note{padding:14px;border-left:4px solid var(--gold);background:var(--gold-lt);font-size:13px;line-height:1.6;border-radius:8px;margin:14px 0}
.results-actions{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0}
#results-print h2{color:var(--navy)}
@media(max-width:760px){
 #v-admin .adm-main{padding:12px 10px 24px}
 #v-admin .adm-top{padding:8px 10px}
 .adm-titlabel{display:none}
 #v-admin .adm-title{font-size:13px;max-width:42vw;white-space:normal}
 .admin-home-head{display:block;margin-top:10px}
 .admin-home-head h2{font-size:1.2rem}
 .admin-menu-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .admin-tile{padding:13px 10px;min-height:135px;gap:6px;border-radius:13px}
 .admin-tile b{font-size:14px}
 .admin-tile small{font-size:11.5px}
 .cashier-grid{grid-template-columns:minmax(0,1fr)}
 .directory-form{grid-template-columns:minmax(0,1fr)}
 .directory-form .wide{grid-column:1}
 #v-admin .suite-toolbar{flex-wrap:wrap}
 #v-admin .suite-field{min-width:0;flex:1 1 140px}
}
@media print{
 body.printing-results>*:not(#v-admin){display:none!important}
 body.printing-results,body.printing-results #v-admin,body.printing-results .adm-body,body.printing-results .adm-main,body.printing-results #adm-resultados,body.printing-results #results-print{position:static!important;display:block!important;height:auto!important;overflow:visible!important;width:100%!important;max-width:none!important;background:#fff!important;padding:0!important}
 body.printing-results .adm-top,body.printing-results .adm-sidebar,body.printing-results .adm-sec:not(#adm-resultados),body.printing-results #adm-resultados>*:not(#results-print){display:none!important}
 body.printing-results .suite-table{font-size:9px}body.printing-results .suite-table-wrap{overflow:visible}body.printing-results tr{break-inside:avoid}body.printing-results .suite-card{box-shadow:none}body.printing-results .suite-grid{display:grid;grid-template-columns:1fr 1fr}body.printing-results thead{display:table-header-group}
}
/* Refinements 3.6.1: keep three operational figures together, then tax/cost detail. */
.results-primary{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:20px}
.results-primary .suite-card{border-top:4px solid var(--gold);min-width:0}
.results-primary .suite-card:last-child{border-top-color:#55856a;background:linear-gradient(135deg,#f6fbf7,#e7f2ea)}
.results-primary .v{font-size:clamp(21px,3vw,30px);overflow-wrap:anywhere}
.report-menu{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:10px;margin:15px 0}
.report-menu button{justify-content:flex-start;white-space:normal;text-align:left;min-height:48px}
.report-table{font-variant-numeric:tabular-nums}
.report-details{margin-top:20px}
.report-details summary{cursor:pointer;font-weight:650;padding:12px 0}
.config-fields{border:0;padding:0;margin:0;min-width:0}
.config-fields:disabled input,.config-fields:disabled select{opacity:1;background:var(--surface3);color:var(--text)}
.config-locked{display:block;margin-top:16px;font-size:13px}
.config-locked input{margin:6px 0;max-width:380px}
.config-locked small{display:block;color:var(--text2)}
.config-error{color:var(--red);font-size:14px}
.config-help{border-top:1px solid var(--border);padding-top:12px;font-size:13px}
#config-edit{display:flex;align-items:center;gap:6px;white-space:normal}
@media(max-width:600px){.results-primary{grid-template-columns:minmax(0,1fr);gap:10px}.report-menu{grid-template-columns:repeat(2,minmax(0,1fr))}#adm-config .adm-ph{flex-wrap:wrap;gap:10px}}
@media print{
 body.printing-report>*:not(#v-admin){display:none!important}
 body.printing-report,body.printing-report #v-admin,body.printing-report .adm-body,body.printing-report .adm-main,body.printing-report #adm-reportes,body.printing-report #report-print{position:static!important;display:block!important;height:auto!important;overflow:visible!important;width:100%!important;max-width:none!important;background:#fff!important;padding:0!important}
 body.printing-report .adm-top,body.printing-report .adm-sidebar,body.printing-report .adm-sec:not(#adm-reportes),body.printing-report #adm-reportes>*:not(#report-print){display:none!important}
 body.printing-report .suite-table{font-size:9px}body.printing-report .suite-table-wrap{overflow:visible}body.printing-report tr{break-inside:avoid}body.printing-report .suite-card{box-shadow:none}body.printing-report .suite-grid{display:grid;grid-template-columns:1fr 1fr 1fr}body.printing-report thead{display:table-header-group}
 body.printing-results .results-primary{grid-template-columns:1fr 1fr 1fr}
}
/* Supplier payouts: final action of the first POS row, with a phone-size form. */
.pos-payout-btn{display:flex;align-items:center;justify-content:center;min-width:78px;height:48px;border:1px solid #a28143;border-radius:12px;background:linear-gradient(135deg,#fff2d4,#e9c581);color:#172842;font-size:15px;font-weight:700;font-family:inherit;cursor:pointer;box-shadow:0 3px 8px rgba(15,43,91,.10);flex-shrink:0}
.pos-payout-btn:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}
#m-payouts .ta-modal{width:min(900px,95vw);max-width:900px}
.payout-fields{border:0;padding:0;margin:0;min-width:0}
.payout-fields:disabled input,.payout-fields:disabled select{opacity:.8}
.payout-fields label{font-size:13px;display:block}
.payout-check{display:flex!important;gap:10px;align-items:center;padding:14px 0;font-weight:650}
.payout-check input{width:20px;height:20px;flex:none}
.payout-document{margin:12px 0;padding:12px;background:var(--surface3);border:1px solid var(--border);border-radius:12px;font-size:13px;overflow-wrap:anywhere}
.payout-document p{margin:8px 0}
.payout-items{display:grid;gap:12px;margin-top:12px}
.payout-item{padding:12px;border:1px solid var(--border);border-radius:12px}
.payout-item label{margin-top:8px}
.payout-item>button{margin-top:10px}
.payout-save{width:100%;margin:10px 0;min-height:48px;white-space:normal}
.payout-file{position:relative;overflow:hidden;cursor:pointer}
.payout-file input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}
.payout-history{margin-top:14px;font-size:13px}
.payout-history summary{cursor:pointer;padding:10px 0;font-weight:700}
.payout-admin-actions{margin-bottom:12px}
@media(max-width:760px){
 .pos-identity{grid-template-columns:auto minmax(0,1fr) 104px 66px;gap:6px}
 .pos-topbar .pos-scan-btn{width:104px;height:50px;padding:6px;gap:5px;font-size:12px}
 .pos-scan-btn svg{width:23px;height:23px}.pos-scan-btn span{max-width:60px}
 .pos-payout-btn{min-width:0;width:66px;height:50px;font-size:13px}
 #m-payouts .ta-modal{width:calc(100vw - 18px);padding:14px;max-height:92dvh}
 #m-payouts .suite-toolbar{flex-wrap:wrap;gap:8px}
 .payout-item .directory-form{grid-template-columns:minmax(0,1fr)}
}

@media(min-width:761px){.pos-topbar{position:relative}.pos-payout-btn{position:absolute;right:12px;top:9px}.pos-tools{margin-right:86px}}
/* 3.6.3: compact silver modules retain the original grid widths and color stripe. */
.admin-tile{display:grid;grid-template-columns:24px minmax(0,1fr);grid-template-rows:auto auto;column-gap:9px;row-gap:3px;min-height:72px;padding:9px 12px;background:linear-gradient(135deg,rgba(255,255,255,.85),rgba(215,222,230,.40) 58%,rgba(249,250,252,.72));border-color:rgba(164,176,188,.45);border-top-color:var(--tile-color,var(--gold));box-shadow:0 3px 9px rgba(54,65,78,.08),inset 0 1px 0 rgba(255,255,255,.8)}
.admin-tile .tile-icon{grid-row:1/3;align-self:center;line-height:1}.admin-tile .tile-icon svg{width:24px;height:24px}
.admin-tile b{align-self:end}.admin-tile small{align-self:start;font-size:11px;line-height:1.2}
.results-filters{display:grid;grid-template-columns:1fr 1fr;gap:12px;flex:1 1 100%;min-width:0}
.results-filters label{display:block;min-width:0;font-size:15px;font-weight:650}
.results-filters .suite-input{display:block;width:100%;min-width:0;max-width:100%;height:50px;font-size:16px;margin-top:6px;box-sizing:border-box}
.results-primary{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.results-primary .l{font-size:16px;font-weight:750;color:var(--navy)}
.results-primary .suite-card{display:flex;flex-direction:column}.results-primary .l{order:-1}.results-primary .suite-ico{display:none}
.recovery-card{padding:14px;border:1px solid #bd8c45;border-radius:14px;background:linear-gradient(135deg,#fffaf0,#f4e5ca);color:#25354a;text-align:left;font-size:14px;overflow-wrap:anywhere}
.recovery-card p{margin:10px 0;line-height:1.5}.recovery-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.recovery-actions button{min-height:48px;white-space:normal;justify-content:center}
.pending-cut-notice{margin:0 0 16px;padding:14px;border:1px solid #bc5454;border-left:5px solid #a72c2c;border-radius:12px;background:#fff2ef;color:#66302a;font-size:14px;overflow-wrap:anywhere}.pending-cut-notice[hidden],#ap-recovery[hidden],#ap-open[hidden],.ap-inp-wrap[hidden]{display:none!important}
.pending-cut-notice p{margin:8px 0;line-height:1.4}.pending-cut-row{display:grid;gap:3px;padding:8px 0;border-top:1px solid #ebc9c3}.pending-cut-notice small{display:block;line-height:1.4}
@media(max-width:760px){.admin-tile{min-height:68px;padding:7px 9px;column-gap:6px;row-gap:2px}.admin-tile b{font-size:13px}.admin-tile small{font-size:10px;line-height:1.15}.admin-tile .tile-icon svg{width:22px;height:22px}.results-filters{gap:8px}}
@media(max-width:600px){.results-primary{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.results-primary .suite-card{padding:10px 6px}.results-primary .l{font-size:13px;line-height:1.3;min-height:34px}.results-primary .v{font-size:clamp(14px,4.3vw,22px);line-height:1.4;letter-spacing:-.4px;overflow-wrap:anywhere}.results-primary .n{font-size:10px;line-height:1.3}.results-filters label{font-size:13px}}
@media print{.pending-cut-notice{display:none!important}}
.admin-tile{height:73px;grid-template-rows:minmax(0,1fr) 14px}
.admin-tile b{line-height:1.15;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.admin-tile small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
@media(max-width:760px){.admin-tile{height:68px;grid-template-rows:minmax(0,1fr) 12px}}
#v-apertura label[hidden]{display:none!important}
.pending-cut-notice details{margin-top:8px}.pending-cut-notice summary{cursor:pointer;font-weight:650;padding:6px 0;min-height:30px}.pending-cut-notice>p{margin:6px 0;font-weight:650}
/* 3.6.4: waiting entry and supplier schedules reuse the existing visual language. */
#v-access{min-height:100dvh;overflow-y:auto;justify-content:center;align-items:center;padding:20px 12px;background:linear-gradient(145deg,#f5f5f0,#e5edf3)}
.access-wait-card{width:min(560px,100%);background:white;border:1px solid #c5ced8;border-top:4px solid var(--gold);border-radius:18px;padding:22px;color:var(--navy);box-shadow:0 8px 30px #20304716;overflow-wrap:anywhere}.access-wait-card p,.access-wait-card li{font-size:14px;line-height:1.5}.access-wait-card .ta-actions{flex-wrap:wrap}.access-wait-card button{min-height:44px;white-space:normal}
.access-notice{margin:0 0 12px;padding:12px;border-radius:12px;border:1px solid #d9bd7b;background:linear-gradient(135deg,#fffcf3,#f7efdc);font-size:14px}.access-notice[hidden]{display:none!important}.access-notice p{margin:7px 0}.entry-request-row{padding:10px 0;border-top:1px solid #decda1;margin-top:8px}.entry-request-row small{display:block;margin:6px 0;line-height:1.4}
.store-hours{margin-bottom:14px}.store-hours p{font-size:14px;line-height:1.5}.store-hours-grid{display:grid;gap:12px}.store-hours-row{display:grid;grid-template-columns:1.1fr 1fr 1fr;align-items:center;gap:8px}.store-hours-row label{display:block;font-size:13px;min-width:0}.store-hours-row .suite-input{width:100%;min-width:0}.supplier-schedule{border:1px solid #c6d0db;border-radius:12px;padding:12px;font-size:13px}.supplier-schedule legend{font-weight:700}.supplier-schedule .day-checks label{display:flex;align-items:center;gap:5px}.supplier-schedule input[type=checkbox]{width:18px;height:18px;margin:0}
#access-wait-error,#entry-approval-error,#store-hours-error{color:var(--red);font-size:14px}
@media(max-width:400px){.access-wait-card{padding:16px}.store-hours-row{grid-template-columns:80px 1fr 1fr;gap:5px}.store-hours-row .suite-input{padding:7px 3px;font-size:13px}}
@media print{.access-notice{display:none!important}}


/* css/77-product-tiles.css */
/* One shared, square template: category outline, details left, photograph right. */
#v-pos .prod-area {grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-auto-rows:max-content;align-items:start;gap:12px}
#v-pos .prod-card.product-tile,.product-template-preview .product-tile {
 box-sizing:border-box;width:100%;height:auto;min-height:0;aspect-ratio:1;
 display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;
 padding:12px;border:2px solid var(--category-border);border-radius:18px;
 background:linear-gradient(145deg,#fff 0%,#f7f7f7 55%,#e9e9e9 100%);
 color:#111;text-align:left;font-family:inherit;position:relative;overflow:hidden;
 box-shadow:0 3px 9px #14243b12;transition:box-shadow .15s;container-type:inline-size;
}
#v-pos .prod-card.product-tile::before,.product-template-preview .product-tile::before {display:none}
#v-pos .prod-card.product-tile:hover {border-color:var(--category-border);transform:none;box-shadow:0 4px 14px #14243b25}
#v-pos .prod-card.product-tile:focus-visible {outline:3px solid #183d75;outline-offset:2px}
#v-pos .product-tile.has-image,.product-template-preview .product-tile.has-image {grid-template-columns:minmax(0,58%) minmax(0,42%)}
.product-tile .tile-copy {min-width:0;display:flex;flex-direction:column;gap:3px;align-self:start;z-index:1}
.product-tile .tile-name {font-size:clamp(14px,9cqi,26px);font-weight:800;line-height:1.08;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.product-tile .tile-presentation {font-size:clamp(12px,7cqi,21px);line-height:1.15;overflow-wrap:anywhere}
.product-tile .tile-sku {font-size:clamp(11px,6.5cqi,19px);color:var(--category-border);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.product-tile .tile-price {font-size:clamp(18px,11cqi,32px);font-weight:800;line-height:1.15;margin-top:auto;font-variant-numeric:tabular-nums;white-space:nowrap}
.product-tile .tile-image {grid-column:2;grid-row:1;min-width:0;min-height:0;height:100%;align-self:center;display:flex;align-items:center;justify-content:center}
.product-tile .tile-image[hidden] {display:none}
.product-tile .tile-image img {width:100%;height:100%;max-height:100%;object-fit:contain;mix-blend-mode:multiply}
.product-tile .tile-stock {grid-column:1/-1;display:flex;align-items:center;gap:8px;color:#153e83;font-size:clamp(12px,8cqi,24px);font-weight:600;line-height:1.2;white-space:nowrap;padding-top:6px}
.product-tile .pc-sdot {width:10px;height:10px}
#v-pos .product-tile.out {opacity:.62;cursor:not-allowed}
.product-template-preview {width:min(100%,280px);margin:14px auto}
.product-image-gallery {display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px;max-height:240px;overflow:auto}
.product-image-gallery button {border:1px solid #cbd5e1;border-radius:12px;background:#fff;padding:8px;cursor:pointer;color:#111}
.product-image-gallery img {width:100%;height:85px;object-fit:contain;display:block}
.product-image-gallery span {font-size:12px;overflow-wrap:anywhere}
.product-template-edit {font-size:11px;padding:5px 7px;margin-top:5px}
@media(max-width:760px){#v-pos .prod-area{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:max-content;gap:8px;padding:8px}#v-pos .prod-card.product-tile{padding:9px;border-radius:15px}.product-tile .tile-copy{gap:2px}.product-tile .tile-stock{gap:6px}.product-tile .pc-sdot{width:8px;height:8px}}

/* Emoji a color con apariencia 3D en el lado derecho del botón de producto */
.product-tile .tile-image.is-emoji{mix-blend-mode:normal!important}
.product-tile .tile-image.is-emoji::before{content:"";position:absolute;inset:14% 6%;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff 0,rgba(255,255,255,.85) 18%,color-mix(in srgb,var(--category-border,#64748b) 16%,#fff) 62%,color-mix(in srgb,var(--category-border,#64748b) 30%,#fff) 100%);box-shadow:inset -3px -5px 9px rgba(15,43,91,.14),0 5px 10px rgba(15,43,91,.16)}
.product-tile .tile-emoji{position:relative;z-index:1;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji","Twemoji Mozilla",sans-serif;font-size:clamp(34px,min(21cqi,9vw),58px);line-height:1;filter:drop-shadow(0 1px 0 rgba(255,255,255,.9)) drop-shadow(1px 3px 2px rgba(15,43,91,.35)) saturate(1.15);transform:translateY(-1px);user-select:none}
.product-tile .tile-emoji[hidden]{display:none}
.product-tile:hover:not(:disabled) .tile-emoji{transform:translateY(-3px) scale(1.06);transition:transform .15s}
/* Selector de emoji */
.emoji-picker{margin:.5rem 0}
.emoji-picker-row{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap;margin:.25rem 0 .5rem}
.emoji-picker-current{font-size:2.6rem;line-height:1;width:3.6rem;height:3.6rem;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#e8eef9);box-shadow:inset -2px -4px 8px rgba(15,43,91,.15),0 4px 8px rgba(15,43,91,.15);filter:drop-shadow(0 2px 2px rgba(15,43,91,.3));font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}
.emoji-picker-row .suite-input{flex:1;min-width:10rem}
.emoji-picker-grid{max-height:210px;overflow:auto;border:1px solid #d7dfec;border-radius:12px;padding:.5rem;background:#fff}
.emoji-picker-title{font-size:.72rem;font-weight:800;color:#64748b;text-transform:uppercase;letter-spacing:.04em;margin:.4rem 0 .2rem}
.emoji-picker-set{display:flex;flex-wrap:wrap;gap:2px}
.emoji-picker-set button{font-size:1.6rem;line-height:1;width:2.6rem;height:2.6rem;border:0;border-radius:10px;background:transparent;cursor:pointer;font-family:"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji",sans-serif}
.emoji-picker-set button:hover,.emoji-picker-set button:focus-visible{background:#eef3fb;outline:2px solid #183d75}

/* Ticket de cobro ordenado, total grande */
.pay-summary .pay-item{align-items:flex-start;gap:.75rem;padding:.2rem 0;border-bottom:1px dashed var(--border)}
.pay-summary .pay-item .pay-slbl{display:flex;flex-direction:column;min-width:0;overflow-wrap:anywhere}
.pay-summary .pay-unit{font-size:.68rem;color:#64748b;margin-top:1px}
.pay-summary .pay-sval{white-space:nowrap}
.pay-summary .pay-stotal{margin-top:.5rem;padding:.6rem .75rem;border:0;border-radius:12px;background:#0f2b5b;color:#fff}
.pay-summary .pay-stlbl{font-size:.9rem;font-weight:800;letter-spacing:.08em;color:#fff}
.pay-summary .pay-stval{font-size:2.1rem;font-weight:900;line-height:1;color:#fff;letter-spacing:-.01em}
.pay-summary .pay-words{text-align:center;font-style:italic;margin:.5rem 0 0}

/* Logo de la tienda */
img[data-ti-logo]{object-fit:contain!important}
.store-logo-card{margin-bottom:.875rem}
.store-logo-row{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin:.75rem 0}
.store-logo-preview{width:96px;height:96px;object-fit:contain;border:1px dashed #b7c2cf;border-radius:16px;background:#fff;padding:6px}
.store-logo-actions{display:flex;gap:.5rem;flex-wrap:wrap}

/* Menú Dispositivos */
.dev-panel{display:grid;gap:12px}
.dev-card{border:1px solid #d7dfec;border-radius:16px;padding:14px;background:#fff}
.dev-title{margin:0 0 2px;font-size:1.05rem;color:#0f2b5b}
.dev-sub{margin:0 0 8px;font-size:.85rem;color:#64748b}
.dev-state{display:flex;align-items:center;gap:8px;font-weight:700;font-size:.9rem;margin:6px 0 10px}
.dev-state .dev-dot{width:11px;height:11px;border-radius:50%;background:#94a3b8}
.dev-state.ok{color:#15803d}.dev-state.ok .dev-dot{background:#16a34a;box-shadow:0 0 0 4px #16a34a22}
.dev-state.off{color:#64748b}
.dev-row{display:flex;gap:8px;flex-wrap:wrap}
.dev-row .suite-btn{min-height:46px}
.dev-note{font-size:.78rem;color:#64748b;line-height:1.5;margin:8px 0 0}
.dev-note.warn{color:#9a6a1e;background:#fff7e0;border-radius:10px;padding:8px 10px}
.dev-baud{margin:0 0 10px}
.dev-test-out{margin-top:8px;font-weight:700;font-size:.85rem}
.dev-test-out.ok{color:#15803d}.dev-test-out.warn{color:#9a6a1e}

/* Banner de avisos visible también en celular */
@media (max-width:600px){
  #v-pos .pm-banner-carousel{display:block!important;margin:6px 12px 10px;border-radius:16px}
  #v-pos .pm-carousel-slide{min-height:84px!important;padding:12px 14px!important}
  #v-pos .pm-slide-visual{display:none}
  #v-pos .pm-slide-title{max-width:100%!important;font-size:1.05rem!important;line-height:1.25}
  #v-pos .pm-slide-title [data-field="detail"]{display:block;font-size:.78rem;font-weight:500;opacity:.9}
}
/* Categorías: botones grandes, letras y emoji más visibles */
#v-pos .cat-sb{gap:10px!important}
#v-pos .cat-sb .cat-item,#v-pos .cat-sb .cat-btn{display:inline-flex!important;flex:0 0 auto;flex-direction:row!important;align-items:center;justify-content:center;gap:10px!important;min-height:56px!important;padding:10px 20px!important;border-radius:18px!important;border:2px solid #d3dcea!important;background:#fff!important;color:#0f2b5b!important;font-size:1.12rem!important;font-weight:800!important;letter-spacing:.01em;white-space:nowrap;box-shadow:0 2px 6px rgba(15,43,91,.08)}
#v-pos .cat-sb .cat-item .cat-emoji{font-size:1.9rem!important;width:auto!important;line-height:1;filter:drop-shadow(1px 2px 1px rgba(15,43,91,.25))}
#v-pos .cat-sb .cat-item.act,#v-pos .cat-sb .cat-btn.act{background:#0f2b5b!important;color:#fff!important;border-color:#0f2b5b!important;box-shadow:0 5px 14px rgba(15,43,91,.35)}
#v-pos .pm-carousel-slide{background-color:#0f2b5b;background-image:linear-gradient(120deg,#0f2b5b,#1b4a9c)!important}
#v-pos .pm-slide-badge{background:#b8913f!important;color:#fff!important;border:0!important;font-weight:800;letter-spacing:.06em}
#v-pos .pm-slide-title{color:#fff!important;font-weight:800}
@media (max-width:600px){#v-pos .pm-slide-title{font-size:1.2rem!important}}
#v-pos .pm-slide-title span[data-field="title"]{font-size:1.25rem!important;font-weight:800!important;color:#fff!important;display:block;line-height:1.25}
#v-pos .pm-slide-title span[data-field="detail"]{display:block;font-size:.8rem!important;font-weight:500!important;opacity:.9}
#v-pos .pm-slide-title span[data-field="detail"]:empty{display:none!important}
#v-pos .pm-slide-title span::before,#v-pos .pm-slide-title span::after{content:none!important}
#v-pos .pm-slide-title,#v-pos .pm-slide-title span[data-field="title"]{white-space:normal!important;text-overflow:clip!important;overflow:visible!important;display:block;-webkit-line-clamp:unset!important}


/* css/78-compact-cashier.css */
/* Compact cards preserve all 3.6.5 typography and column widths. */
#v-pos .prod-card.product-tile,.product-template-preview .product-tile {
 aspect-ratio:auto;min-height:0;grid-template-rows:auto;
 background:linear-gradient(135deg,rgba(255,255,255,.85),rgba(215,222,230,.40) 58%,rgba(249,250,252,.72));
 border:1px solid rgba(164,176,188,.45);
 border-top:4px solid var(--category-border);
 border-top-color:color-mix(in srgb,var(--category-border) 45%,white);
 box-shadow:0 3px 9px rgba(54,65,78,.08),inset 0 1px 0 rgba(255,255,255,.8);
 transition:box-shadow .18s ease,transform .18s ease,border-color .18s ease;
 backdrop-filter:blur(6px);
}
.product-tile .tile-price {margin-top:0}
.product-tile .tile-stock {padding-top:2px;margin-top:0;grid-column:auto}
.product-tile .tile-image {grid-column:auto;grid-row:auto;align-self:stretch;mix-blend-mode:multiply;position:absolute;right:9px;top:9px;bottom:9px;width:38%;height:auto}
#v-pos .prod-card.product-tile {min-height:0}
#v-pos .prod-card.product-tile:hover:not(:disabled) {
 border-color:rgba(164,176,188,.65);border-top-color:var(--category-border);
 border-top-color:color-mix(in srgb,var(--category-border) 65%,white);
 transform:translateY(-1px);box-shadow:0 6px 18px rgba(15,43,91,.12),inset 0 1px 0 rgba(255,255,255,.9);
}
#v-pos .prod-card.product-tile:active:not(:disabled) {transform:translateY(0);box-shadow:0 2px 6px rgba(15,43,91,.1),inset 0 1px 0 rgba(255,255,255,.8)}
@media(prefers-reduced-motion:reduce){#v-pos .prod-card.product-tile{transition:none}#v-pos .prod-card.product-tile:hover:not(:disabled){transform:none}}
#v-pos .pos-totbar {gap:8px;min-height:66px;height:auto;padding:6px 10px;overflow-x:auto}
#v-pos .pos-totbar [hidden],#v-pos .pos-totbar .totbar-sep,#v-pos .pos-totbar .totbar-sp {display:none}
#v-pos .totbar-items,#v-pos .totbar-subtotal,#v-pos .totbar-grand-total {padding:5px 7px;border-radius:10px;min-width:0;line-height:1.15}
#v-pos .totbar-items {color:#b54708;background:linear-gradient(135deg,#fff2dc,#ffddb1);font-weight:700;white-space:normal}
#v-pos .totbar-items b {display:block;color:#a44004;font-size:18px}
#v-pos .totbar-subtotal {background:linear-gradient(135deg,#eefaff,#c9edff)}
#v-pos .totbar-subtotal .totbar-lbl {color:#0873ab;font-weight:800}
#v-pos .totbar-subtotal .totbar-val {color:#075985}
#v-pos .totbar-grand-total {background:linear-gradient(135deg,#f6efff,#e0ceff);flex:1}
#v-pos .totbar-total-lbl {color:#7443bd;font-weight:900;font-size:12px}
#v-pos .totbar-total-val {color:#39206b;font-size:28px;font-weight:900}
#v-pos .btn-cobrar-top {font-size:20px;font-weight:900;min-height:48px;padding:8px 13px;background:linear-gradient(135deg,#245bc7,#112e68);border:2px solid #edbd61;box-shadow:0 3px 10px #174d9433;justify-content:center}
#v-pos .btn-cobrar-top:disabled {opacity:.55}
@media(max-width:760px){
 #v-pos .pos-totbar {display:grid;grid-template-columns:minmax(46px,.65fr) minmax(61px,1fr) minmax(82px,1.3fr) minmax(73px,1fr);gap:5px;padding:6px 8px}
 #v-pos .pos-totbar>* {flex-shrink:1}
 #v-pos .totbar-items,#v-pos .totbar-subtotal,#v-pos .totbar-grand-total {padding:5px;align-self:stretch;display:flex;flex-direction:column;justify-content:center}
 #v-pos .totbar-items {font-size:10px}
 #v-pos .totbar-lbl {font-size:10px}
 #v-pos .totbar-val {font-size:16px}
 #v-pos .totbar-total-val {font-size:24px}
 #v-pos .btn-cobrar-top {font-size:18px;padding:7px 5px;min-width:0;width:100%;letter-spacing:0}
 #v-pos .btn-cobrar-top .total-chip {display:none}
 #v-pos .btn-cancel-top {grid-column:4;font-size:11px;min-height:28px;padding:3px}
 #v-pos .btn-cancel-top:disabled {display:none}
}
@media(max-width:350px){#v-pos .totbar-total-val{font-size:21px}}
/* Reserve room for two complete product rows on short phones, even with a sale active. */
@media(max-width:760px) and (max-height:800px){
 #v-pos .pos-topbar{padding-top:3px;padding-bottom:3px;gap:3px}
 #v-pos .pos-identity{min-height:48px}
 #v-pos .pos-topbar .pos-scan-btn{height:46px}
 #v-pos .pos-tools{min-height:40px}
 #v-pos .pos-paybar{min-height:46px;height:46px}
 #v-pos .pos-banner{height:30px;min-height:30px}
 #v-pos .banner-msg{font-size:16px}
 #v-pos .banner-icon{font-size:20px}
 #v-pos .pos-totbar{gap:3px 5px;padding-top:4px;padding-bottom:4px}
 #v-pos .totbar-items,#v-pos .totbar-subtotal,#v-pos .totbar-grand-total{grid-row:1 / 3}
 #v-pos .btn-cobrar-top{grid-column:4;grid-row:1;min-height:40px;padding-top:4px;padding-bottom:4px}
 #v-pos .btn-cancel-top{grid-column:4;grid-row:2}
 #v-pos .pos-body{grid-template-rows:64px minmax(0,1fr)}
 #v-pos .cart-head{min-height:30px;padding-top:3px;padding-bottom:3px}
}


/* css/79-minimal-login.css */
/* Professional Card-Based Login */

#v-login {
  background: linear-gradient(135deg, #E6EEF5 0%, #F4F7F9 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  font-family: 'Inter', sans-serif;
}

.login-card-pro {
  background: #FFFFFF;
  border-radius: 20px;
  box-shadow: 0 12px 32px rgba(25, 42, 70, 0.06), 0 0 0 1px rgba(0,0,0,0.02) inset;
  width: 100%;
  max-width: 400px;
  padding: 1.5rem;
  position: relative;
  max-height: 100vh;
  overflow-y: auto;
}

.login-header-pro {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.5rem;
}

.suite-btn-pro {
  background: #FFFFFF;
  border: 1px solid #D4DDEA;
  border-radius: 10px;
  padding: 6px 12px;
  font-size: 0.8rem;
  font-weight: 600;
  color: #19365B;
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: 'Inter', sans-serif;
}
.suite-btn-pro:hover {
  background: #F4F7F9;
  border-color: #B0C0D4;
}

.root-info-pro img {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid #D4DDEA;
  padding: 2px;
}

.login-branding-pro {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}
.login-logo-pro {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
.login-brand-pro {
  font-size: 2.5rem;
  text-align: left;
  font-weight: 800;
  letter-spacing: -0.02em;
}
.login-brand-pro .nb { color: #19365B; }
.login-brand-pro .gb { color: #AD8236; }

.login-tagline-pro {
  font-size: 0.65rem;
  font-weight: 600;
  color: #08315d;
  letter-spacing: 0.05em;
  margin-top: 2px;
}

.login-clock-pro {
  background: linear-gradient(135deg, #2A4563 0%, #19365B 100%);
  border-radius: 14px;
  padding: 1rem;
  text-align: center;
  color: #FFFFFF;
  margin-bottom: 1.5rem;
  box-shadow: 0 6px 16px rgba(25, 42, 70, 0.15);
}
.clock-time-pro {
  font-size: 2.5rem;
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1;
}
.clock-period-pro {
  font-size: 1rem;
  font-weight: 600;
  margin-left: 0.4rem;
  opacity: 0.9;
}
.clock-date-pro {
  font-size: 0.9rem;
  font-weight: 500;
  margin-top: 0.4rem;
  opacity: 0.8;
}

.login-fields-pro {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}

#roles-wrapper,
#employee-col-pro {
  flex: 1 1 100%;
  width: 100%;
  box-sizing: border-box;
}

#roles-wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
}

#employee-col-pro {
  align-items: center;
}

#roles-wrapper > label,
#login-role-select,
#employee-col-pro > select {
  width: min(100%, 320px) !important;
  box-sizing: border-box;
  text-align: center;
}

#roles-wrapper > label {
  text-align: center !important;
}

#employee-col-pro > select {
  align-self: center;
  margin-inline: auto;
}

/* Apertura de caja: misma jerarquía visual que el acceso. */
#v-apertura {
  background: linear-gradient(135deg, #E6EEF5 0%, #F4F7F9 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1rem;
  overflow-y: auto;
  font-family: 'Inter', sans-serif;
}

#v-apertura .ap-card {
  width: 100%;
  max-width: 460px;
  box-sizing: border-box;
  margin: auto;
  padding: 2.5rem;
  background: #FFFFFF;
  border: 1px solid rgba(184,145,63,.28);
  border-radius: 20px;
  box-shadow: 0 12px 32px rgba(25,42,70,.10), 0 0 0 1px rgba(255,255,255,.75) inset;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

#v-apertura .ap-header {
  display: flex;
  justify-content: center;
  text-align: center;
}

#v-apertura .ap-brand-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}

#v-apertura .ap-brand {
  font-size: 2.5rem;
  font-weight: 900;
  letter-spacing: -.02em;
}

#v-apertura .ap-tagline {
  color: #19365B;
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1.2;
  text-transform: uppercase;
}

#v-apertura .ap-section-head {
  text-align: center;
}

#v-apertura .ap-eyebrow {
  color: #B88936;
  font-size: 0.75rem;
  font-weight: 800;
  letter-spacing: .15em;
  margin-bottom: 0.5rem;
  text-transform: uppercase;
}

#v-apertura .ap-head {
  color: #19365B;
  font-size: 1.3rem;
  font-weight: 800;
  margin: 0 0 0.4rem 0;
  text-transform: uppercase;
}

#v-apertura .ap-sub {
  color: #8C9BAB;
  font-size: 0.85rem;
  margin: 0;
  font-weight: 500;
}

#v-apertura .ap-emp-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}

#v-apertura .ap-emp {
  width: 100%;
  box-sizing: border-box;
  background: #F4F7F9;
  border: 1px solid #E6EEF5;
  border-radius: 14px;
  padding: 1.2rem 1rem;
  text-align: center;
  color: #19365B;
  font-weight: 600;
  font-size: 0.95rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.6rem;
}

#v-apertura .ap-fund-section {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}

#v-apertura .ap-lbl {
  color: #8C9BAB;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: .6rem;
  text-align: center;
  width: 100%;
}

#v-apertura .ap-inp-wrap {
  position: relative;
  width: 100%;
  max-width: 240px;
  margin: 0 auto 0.5rem auto;
}

#v-apertura .ap-prefix {
  position: absolute;
  left: 1.2rem;
  top: 50%;
  transform: translateY(-50%);
  color: #19365B;
  font-size: 1.4rem;
  font-weight: 600;
  pointer-events: none;
}

#v-apertura .ap-inp {
  width: 100%;
  background: #FFFFFF;
  border: 1px solid #D4DDEA;
  border-radius: 12px;
  color: #19365B;
  font-size: 1.4rem;
  font-weight: 700;
  height: 56px;
  padding-left: 2.5rem;
  padding-right: 1rem;
  box-sizing: border-box;
  text-align: center;
  transition: all 0.2s ease;
}

#v-apertura .ap-inp:focus {
  border-color: #19365B;
  box-shadow: 0 0 0 4px rgba(25,54,91,.12);
  outline: none;
}

#v-apertura .ap-note {
  color: #A0AAB5;
  font-size: .7rem;
  text-align: center;
  margin: 0;
  font-weight: 500;
}

#v-apertura .ap-actions {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  width: 100%;
  margin-top: 0.5rem;
}

#v-apertura .ap-btn {
  width: 100%;
  height: 52px;
  border-radius: 12px;
  background: #19365B;
  color: #FFFFFF;
  font-size: 0.9rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  border: none;
  cursor: pointer;
  box-shadow: 0 8px 18px rgba(25,54,91,.18);
  transition: all 0.2s ease;
}

#v-apertura .ap-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(25,54,91,.25);
  background: #142a4a;
}

#v-apertura .ap-ghost {
  width: 100%;
  height: 44px;
  border-radius: 12px;
  background: transparent;
  color: #8C9BAB;
  font-size: 0.8rem;
  font-weight: 600;
  border: none;
  cursor: pointer;
  transition: all 0.2s ease;
}

#v-apertura .ap-ghost:hover {
  color: #19365B;
  background: #F4F7F9;
}

@media (max-width: 520px) {
  #v-apertura { padding: 12px; }
  #v-apertura .ap-card { padding: 1.5rem; gap: 1.2rem; }
  #v-apertura .ap-brand { font-size: 2rem; }
}

@media (max-width: 380px) {
  #v-apertura .ap-card { padding: 1.25rem; }
  #v-apertura .ap-tagline { font-size: .53rem; letter-spacing: .045em; }
}

.business-mode-notice {
  position: fixed;
  top: clamp(12px, 2.5vw, 28px);
  left: 50%;
  transform: translateX(-50%);
  z-index: 200;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
  width: min(860px, calc(100vw - 32px));
  box-sizing: border-box;
  padding: 10px 12px;
  border: 1px solid #DCE7F2;
  border-radius: 12px;
  background: rgba(238,245,255,.94);
  color: #26446C;
  font-size: 12px;
  line-height: 1.35;
  box-shadow: 0 8px 22px rgba(25,54,91,.08);
  backdrop-filter: blur(12px);
}
.business-mode-notice > span {
  flex: 1 1 260px;
  min-width: 0;
  text-align: center;
}
.business-mode-notice .suite-btn {
  flex: 0 0 auto;
  white-space: nowrap;
}
@media (min-width: 400px) {
  .login-fields-pro {
    flex-direction: column;
  }
}

@media (min-width: 900px) {
  .login-card-pro {
    max-width: 460px;
    padding: 2rem;
  }
}

@media (max-width: 520px) {
  .business-mode-notice {
    width: calc(100vw - 20px);
    padding: 8px;
  }
  .business-mode-notice > span {
    flex-basis: 100%;
  }
  .business-mode-notice .suite-btn {
    flex: 1 1 auto;
  }
}

.field-col-pro {
  flex: 1;
  display: flex;
  flex-direction: column;
}
.field-col-pro label {
  font-size: 0.65rem;
  font-weight: 700;
  color: #8C9BAB;
  margin-bottom: 0.4rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.input-pro {
  appearance: none;
  background: #FFFFFF;
  border: 1px solid #D4DDEA;
  border-radius: 10px;
  padding: 0.6rem 0.8rem;
  font-family: 'Inter', sans-serif;
  font-size: 0.85rem;
  font-weight: 600;
  color: #19365B;
  width: 100%;
  cursor: pointer;
  box-shadow: 0 2px 4px rgba(0,0,0,0.02);
  background-image: url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%2319365B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.8rem center;
  padding-right: 2rem;
}

.pin-box-pro {
  background: #F4F7F9;
  border-radius: 16px;
  padding: 1rem;
  text-align: center;
  border: 1px solid #E6EEF5;
  margin-bottom: 1.5rem;
}
.pin-title-pro {
  font-size: 0.7rem;
  font-weight: 700;
  color: #8C9BAB;
  letter-spacing: 0.05em;
  margin-bottom: 1rem;
}
.pin-dots-pro {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  margin-bottom: 1rem;
}
.pin-dots-pro .pin-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 2px solid #B0C0D4;
  background: transparent;
  transition: all 0.2s ease;
}
.pin-dots-pro .pin-dot.fill {
  background: #19365B;
  border-color: #19365B;
}
.pin-dots-pro .pin-dot.err {
  background: #FF3B30;
  border-color: #FF3B30;
  animation: shake 0.3s ease-in-out;
}

.pin-desktop-entry { display: none; gap: .6rem; align-items: center; }
.pin-desktop-entry input {
  flex: 1;
  min-width: 0;
  min-height: 44px;
  box-sizing: border-box;
  border: 1px solid #D4DDEA;
  border-radius: 10px;
  background: #FFFFFF;
  color: #19365B;
  padding: .65rem .8rem;
  font: 700 1rem 'Inter', sans-serif;
  letter-spacing: .18em;
  outline: none;
  text-align: center;
}
.pin-desktop-entry input:focus { border-color: #19365B; box-shadow: 0 0 0 3px rgba(25,54,91,.12); }
.pin-desktop-entry button {
  min-height: 44px;
  border: 0;
  border-radius: 10px;
  padding: .65rem .9rem;
  background: #19365B;
  color: #FFFFFF;
  font: 700 .78rem 'Inter', sans-serif;
  cursor: pointer;
}
.pin-desktop-entry button:disabled { opacity: .45; cursor: not-allowed; }

@keyframes shake {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-4px); }
  75% { transform: translateX(4px); }
}

.pin-pad-pro {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
}

.pin-pad-pro .pin-btn {
  background: var(--pin-color, #FFFFFF);
  border: 1px solid rgba(0,0,0,0.04);
  border-radius: 10px;
  height: 48px;
  font-family: 'Inter', sans-serif;
  font-size: 1.25rem;
  font-weight: 700;
  color: #111827;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 1px 0 rgba(0,0,0,0.04);
  transition: transform 0.1s, filter 0.1s;
}
.pin-pad-pro .pin-btn:active {
  transform: translateY(2px);
  box-shadow: none;
  filter: brightness(0.95);
}
.pin-pad-pro .pin-btn.del {
  font-size: 1.1rem;
  color: #111827;
}
.pin-pad-pro .pin-btn.enter {
  background: #B0C0D4 !important;
  color: #FFFFFF !important;
  text-shadow: 0 1px 2px rgba(0,0,0,0.1);
  font-size: 0.95rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* En escritorio se usa el teclado físico; en móvil permanece el teclado visual. */
@media (min-width: 701px) and (hover: hover) and (pointer: fine) {
  .pin-pad-pro { display: none; }
  .pin-desktop-entry { display: flex; }
}

.pin-err-pro {
  color: #FF3B30;
  font-size: 0.75rem;
  font-weight: 600;
  margin-top: 0.75rem;
  min-height: 1rem;
}

.login-footer-pro {
  text-align: center;
  font-size: 0.7rem;
  color: #5F6E80;
  font-weight: 500;
}

.role-sq-btn {
  background: #FFFFFF;
  border: 1px solid #D4DDEA;
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 1rem 0.5rem;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 2px 4px rgba(0,0,0,0.02);
  color: #19365B;
  aspect-ratio: 1 / 1;
}
.role-sq-btn:hover, .role-sq-btn:focus {
  border-color: #B0C0D4;
  background: #F4F7F9;
  box-shadow: 0 4px 12px rgba(25, 42, 70, 0.08);
  transform: translateY(-2px);
  outline: none;
}
.role-sq-btn svg {
  width: 32px;
  height: 32px;
}
.role-sq-btn span {
  font-family: 'Inter', sans-serif;
  font-size: 0.75rem;
  font-weight: 700;
  text-align: center;
}
@media (max-width: 360px) {
  .role-sq-btn svg { width: 24px; height: 24px; }
  .role-sq-btn span { font-size: 0.65rem; }
}


/* css/80-modern-pos.css */
/* 80-modern-pos.css - Refined Card-based Modern Layout */
.pos-modern-layout {
  background-color: #E2E8F0; /* Soft border color for the window */
  display: flex;
  flex-direction: column;
  height: 100vh;
  overflow: hidden;
  font-family: 'Inter', sans-serif;
  padding: 12px;
  box-sizing: border-box;
}

/* Container to simulate the "Screen" look from the design */
.pm-screen {
  background: #FFFFFF;
  border-radius: 20px;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.1);
  overflow: hidden;
}

/* ================== HEADER ================== */
.pm-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 16px 24px;
  background: #FFFFFF;
  border-bottom: 1px solid #F1F5F9;
}

.pm-logo-area {
  display: flex;
  align-items: center;
  gap: 12px;
}

.pm-logo-area img {
  width: 40px;
  height: 40px;
  border-radius: 50%;
}

.pm-brand {
  font-size: 1.4rem;
  font-weight: 800;
  color: #1E293B;
}

.pm-brand .gb { color: #D97706; }

.pm-store-name {
  color: #64748B;
  font-size: 0.9rem;
  font-weight: 600;
  margin-left: 8px;
  padding-left: 12px;
  border-left: 1px solid #E2E8F0;
}

.pm-header-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

.pm-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border-radius: 12px;
  font-size: 0.9rem;
  font-weight: 600;
  border: none;
  cursor: pointer;
  transition: all 0.2s ease;
}

.pm-btn-scan {
  background: #1E3A8A;
  color: #FFFFFF;
  box-shadow: 0 4px 12px rgba(30, 58, 138, 0.2);
}
.pm-btn-scan:hover { background: #1E40AF; transform: translateY(-1px); }

.pm-btn-pay {
  background: #FEF3C7;
  color: #D97706;
}
.pm-btn-pay:hover { background: #FDE68A; }

.pm-user-area {
  display: flex;
  align-items: center;
  gap: 16px;
}

.pm-icon-btn {
  background: transparent;
  border: none;
  color: #64748B;
  cursor: pointer;
  padding: 8px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s;
}
.pm-icon-btn:hover { background: #F1F5F9; color: #0F172A; }

.pm-user-av {
  width: 36px;
  height: 36px;
  background: #818CF8;
  color: white;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.85rem;
  font-weight: 700;
  border: none;
  cursor: pointer;
}

/* ================== TOOLBAR ================== */
.pm-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 24px;
  background: #FFFFFF;
  gap: 16px;
}

.pm-search {
  flex: 1;
  display: flex;
  align-items: center;
  gap: 10px;
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  border-radius: 12px;
  padding: 0 16px;
  height: 48px;
  transition: border-color 0.2s;
}
.pm-search:focus-within { border-color: #3B82F6; background: #FFFFFF; }
.pm-search svg { color: #94A3B8; }
.pm-search input {
  flex: 1;
  border: none;
  background: transparent;
  outline: none;
  font-size: 0.95rem;
  color: #334155;
  height: 100%;
}

.pm-tool-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

.pm-btn-dictate {
  background: #FEE2E2;
  color: #EF4444;
}
.pm-btn-prices {
  background: #D97706;
  color: #FFFFFF;
  box-shadow: 0 4px 12px rgba(217, 119, 6, 0.2);
}
.pm-btn-method {
  background: #F0FDF4;
  color: #166534;
  border: 1px solid #BBF7D0;
}

/* ================== BODY ================== */
.pm-body {
  display: flex;
  flex: 1;
  overflow: hidden;
  background: #F8FAFC;
}

.pm-main {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 24px;
  overflow-y: auto;
}

/* Banner */
.pm-banner-wrapper {
  background: #1E3A8A; /* Temporary fallback */
  border-radius: 16px;
  padding: 24px;
  color: white;
  margin-bottom: 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background-image: linear-gradient(to right, #1E3A8A, #3B82F6);
}
.pm-banner-wrapper h2 { margin: 0 0 8px 0; font-size: 1.5rem; font-weight: 800; }
.pm-banner-wrapper p { margin: 0; font-size: 1rem; opacity: 0.9; }

/* Product Header */
.pm-section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}
.pm-section-header h3 {
  margin: 0;
  font-size: 1.3rem;
  color: #0F172A;
  font-weight: 800;
}
.pm-link {
  color: #3B82F6;
  text-decoration: none;
  font-size: 0.9rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 4px;
}

/* Category Sidebar overrides */
.cat-sb {
  display: flex;
  gap: 12px;
  overflow-x: auto;
  padding-bottom: 12px;
  margin-bottom: 12px;
  border: none;
  background: transparent;
  width: 100%;
}
.cat-sb::-webkit-scrollbar { display: none; }
.cat-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  background: #FFFFFF;
  border: 1px solid #E2E8F0;
  border-radius: 10px;
  font-size: 0.9rem;
  font-weight: 600;
  color: #64748B;
  white-space: nowrap;
  transition: all 0.2s;
}
.cat-btn.act, .cat-btn:hover {
  background: #EFF6FF;
  color: #1D4ED8;
  border-color: #BFDBFE;
}

/* Product Grid */
.prod-area {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 16px;
  align-content: start;
}
.prod-card {
  background: #FFFFFF;
  border-radius: 16px;
  padding: 16px;
  border: 1px solid #F1F5F9;
  box-shadow: 0 4px 12px rgba(0,0,0,0.02);
  display: flex;
  flex-direction: column;
  position: relative;
  transition: transform 0.2s, box-shadow 0.2s;
}
.prod-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.06);
}
.prod-card img {
  width: 100%;
  height: 120px;
  object-fit: contain;
  margin-bottom: 12px;
}
.prod-title {
  font-size: 0.95rem;
  font-weight: 700;
  color: #1E293B;
  margin-bottom: 4px;
}
.prod-sub {
  font-size: 0.75rem;
  color: #94A3B8;
  margin-bottom: 12px;
}
.prod-price {
  font-size: 1.25rem;
  font-weight: 800;
  color: #0F172A;
  margin-bottom: 8px;
}
.prod-stock {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.75rem;
  color: #16A34A;
  font-weight: 600;
}
.prod-stock::before {
  content: '';
  width: 6px;
  height: 6px;
  background: #16A34A;
  border-radius: 50%;
}
.prod-add {
  position: absolute;
  bottom: 16px;
  right: 16px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #EFF6FF;
  color: #3B82F6;
  border: 1px solid #BFDBFE;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s;
}
.prod-add:hover { background: #3B82F6; color: #FFFFFF; }

/* ================== CART ================== */
.pm-cart {
  width: 360px;
  background: #FFFFFF;
  border-left: 1px solid #E2E8F0;
  display: flex;
  flex-direction: column;
}

.pm-cart-header {
  padding: 20px 24px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid #F1F5F9;
}
.pm-cart-title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 1.1rem;
  font-weight: 800;
  color: #0F172A;
}
.pm-cart-badge {
  background: #1E3A8A;
  color: white;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.8rem;
}
.pm-cart-clear {
  background: #FEF2F2;
  color: #EF4444;
  border: none;
  padding: 6px 12px;
  border-radius: 8px;
  font-size: 0.8rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 6px;
  cursor: pointer;
}
.pm-cart-clear:disabled { opacity: 0.5; cursor: not-allowed; }

.pm-cart-body {
  flex: 1;
  overflow-y: auto;
  padding: 24px;
}

.pm-empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  text-align: center;
  color: #94A3B8;
}
.pm-empty-state svg {
  width: 48px;
  height: 48px;
  color: #CBD5E1;
  margin-bottom: 16px;
}
.pm-empty-state h3 { color: #475569; margin: 0 0 8px 0; font-size: 1.1rem; }
.pm-empty-state p { margin: 0; font-size: 0.9rem; }

.pm-cart-footer {
  padding: 24px;
  border-top: 1px solid #F1F5F9;
  background: #FFFFFF;
}

.pm-totals-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-bottom: 20px;
}

.pm-tot-box {
  padding: 12px;
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.pm-tot-box span { font-size: 0.75rem; font-weight: 700; color: #64748B; }
.pm-tot-box b { font-size: 1.1rem; font-weight: 800; color: #0F172A; }

.pm-tot-items { background: #FFF7ED; }
.pm-tot-items span { color: #C2410C; }
.pm-tot-items b { color: #9A3412; }

.pm-tot-sub { background: #F0F9FF; }
.pm-tot-sub span { color: #0369A1; }
.pm-tot-sub b { color: #075985; }

.pm-tot-total { background: #FAF5FF; }
.pm-tot-total span { color: #7E22CE; }
.pm-tot-total b { color: #581C87; }

.pm-btn-cobrar {
  width: 100%;
  height: 56px;
  border-radius: 14px;
  background: linear-gradient(to right, #D97706, #B45309);
  color: #FFFFFF;
  font-size: 1.2rem;
  font-weight: 800;
  border: none;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  cursor: pointer;
  box-shadow: 0 8px 24px rgba(217, 119, 6, 0.3);
  transition: transform 0.2s;
}
.pm-btn-cobrar:disabled { opacity: 0.5; cursor: not-allowed; transform: none; }
.pm-btn-cobrar:not(:disabled):hover { transform: translateY(-2px); }

/* Hide old elements */
.pos-topbar, .pos-paybar, .pos-totbar { display: none !important; }

/* ================== MOBILE RESPONSIVENESS ================== */
@media (max-width: 768px) {
  .pos-modern-layout {
    padding: 0;
    background: #F8FAFC;
  }
  .pm-screen {
    border-radius: 0;
    box-shadow: none;
    overflow-y: auto;
    overflow-x: hidden;
  }

  /* Header adjustments */
  .pm-header {
    padding: 12px 16px;
    position: sticky;
    top: 0;
    z-index: 50;
  }
  .pm-logo-area {
    gap: 8px;
  }
  .pm-logo-area img {
    width: 32px;
    height: 32px;
  }
  .pm-brand { font-size: 1.2rem; }
  .pm-store-name { font-size: 0.8rem; padding-left: 8px; margin-left: 4px; }
  
  /* Hide standard header actions on mobile */
  .pm-header-actions { display: none; }
  .pm-user-area .sync-chip { display: none; }
  .pm-user-av { width: 32px; height: 32px; font-size: 0.8rem; }

  /* Toolbar */
  .pm-toolbar {
    display: grid;
    grid-template-columns: 1fr auto;
    padding: 12px 16px;
    gap: 12px;
  }
  .pm-search { grid-column: 1; height: 44px; }
  
  .pm-tool-actions {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    width: 100%;
  }
  
  .pm-btn-dictate {
    grid-column: 2;
    grid-row: 1;
    position: absolute;
    right: 16px;
    top: 76px; /* Rough positioning next to search */
    width: 44px;
    height: 44px;
    padding: 0;
    justify-content: center;
    border-radius: 12px;
  }
  .pm-btn-dictate span { display: none; }
  .pm-btn-dictate svg { margin: 0; }
  
  /* Create exact Scan and Pay buttons from image */
  .pm-mobile-scan {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: #0F172A;
    color: white;
    padding: 12px;
    border-radius: 12px;
    font-weight: 600;
    font-size: 0.95rem;
    border: none;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.2);
  }
  .pm-mobile-pay {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: #FEF3C7;
    color: #D97706;
    padding: 12px;
    border-radius: 12px;
    font-weight: 600;
    font-size: 0.95rem;
    border: none;
  }
  
  .pm-btn-method, .pm-icon-btn, .pm-btn-prices { display: none; } /* Hide other tools */

  /* Body layout flattening */
  .pm-body {
    display: flex;
    flex-direction: column;
    overflow: visible;
  }
  .pm-main {
    display: contents; /* Unbox main to allow reordering */
  }

  /* Reorder using flex on pm-body */
  .pm-banner-wrapper {
    order: 1;
    margin: 4px 16px 16px 16px;
    border-radius: 16px;
    padding: 16px;
  }
  
  /* Cart becomes middle section */
  .pm-cart {
    order: 2;
    width: auto;
    margin: 0 16px 16px 16px;
    border: none;
    border-radius: 16px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.03);
    flex: none;
    height: auto;
    max-height: 400px;
  }
  .pm-cart-header { padding: 12px 16px; border-bottom: none; }
  .pm-cart-title { font-size: 1rem; }
  .pm-cart-clear { background: transparent; color: #EF4444; padding: 4px; }
  .pm-cart-clear span { display: none; } /* Hide Vaciar text */
  .pm-cart-body { padding: 0 16px; }
  
  /* Cart list compacted */
  .pm-cart-list { max-height: 150px; }
  
  .pm-cart-footer { padding: 12px 16px; border-top: none; }
  .pm-totals-grid {
    grid-template-columns: 1fr;
    gap: 4px;
    margin-bottom: 12px;
  }
  .pm-tot-box {
    flex-direction: row;
    justify-content: space-between;
    align-items: center;
    padding: 4px 0;
    background: transparent !important;
  }
  .pm-tot-items, .pm-tot-sub { display: none; } /* Hide except Total, or keep Subtotal */
  
  /* Show only subtotal visually like image */
  .pm-tot-box.pm-tot-sub { display: flex; }
  .pm-tot-sub span { color: #0F172A; font-weight: 800; font-size: 1rem; }
  .pm-tot-sub b { color: #0F172A; font-size: 1.1rem; }
  
  /* Big Cobrar Button */
  .pm-btn-cobrar {
    height: 54px;
    font-size: 1.1rem;
    border-radius: 16px;
  }

  /* Products Section */
  .pm-section-header {
    order: 3;
    padding: 0 16px;
    margin-bottom: 12px;
  }
  .pm-section-header h3 { font-size: 1.1rem; }
  .prod-area {
    order: 4;
    padding: 0 16px 90px 16px; /* Space for bottom nav */
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
  .prod-card { padding: 12px; border-radius: 14px; }
  .prod-card img { height: 90px; }
  .prod-title { font-size: 0.85rem; }
  .prod-sub { font-size: 0.7rem; }
  .prod-price { font-size: 1.1rem; }
  
  /* Categories as Bottom Nav */
  .cat-sb {
    order: 5;
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background: #FFFFFF;
    padding: 12px 16px;
    margin: 0;
    border-radius: 24px 24px 0 0;
    box-shadow: 0 -4px 20px rgba(0,0,0,0.06);
    display: flex;
    justify-content: space-between;
    z-index: 100;
  }
  .cat-btn {
    flex-direction: column;
    gap: 6px;
    border: none;
    padding: 4px;
    font-size: 0.7rem;
    color: #94A3B8;
    background: transparent;
  }
  .cat-btn svg { width: 22px; height: 22px; }
  .cat-btn.act { background: transparent; color: #3B82F6; }
}

/* Final mobile pass: one vertical scroll, quick actions and the real cashier menu. */
.pm-mobile-actions { display: none; }
.pm-user-area { position: relative; }
.pm-user-av { overflow: hidden; padding: 0; }
.pm-user-av #pos-emp-av,
.pm-user-av #pos-emp-av img { width: 100%; height: 100%; }
.pm-user-av #pos-emp-av { display: flex; align-items: center; justify-content: center; }
.pm-user-av #pos-emp-av img { object-fit: cover; }
.pm-user-menu {
  position: absolute;
  top: calc(100% + 10px);
  right: 0;
  z-index: 220;
  width: 220px;
  padding: 8px;
  border: 1px solid #E2E8F0;
  border-radius: 16px;
  background: #FFFFFF;
  box-shadow: 0 16px 36px rgba(15,43,91,.18);
}
.pm-user-menu[hidden] { display: none; }
.pm-user-menu-head { padding: 8px 10px 10px; border-bottom: 1px solid #EEF2F7; margin-bottom: 4px; }
.pm-user-menu-head strong, .pm-user-menu-head small { display: block; }
.pm-user-menu-head strong { color: #19365B; font-size: .86rem; }
.pm-user-menu-head small { color: #8C9BAB; font-size: .7rem; margin-top: 3px; }
.pm-user-alerts { margin: 4px 2px 6px; padding: 8px 8px 6px; border-radius: 11px; background: #F8FAFC; border: 1px solid #EEF2F7; }
.pm-alerts-title { display: flex; align-items: center; justify-content: space-between; gap: 8px; color: #8C9BAB; font-size: .58rem; font-weight: 800; letter-spacing: .06em; }
.pm-alerts-title b { min-width: 18px; height: 18px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: #19365B; color: #FFFFFF; font-size: .62rem; }
.pm-alert-item { display: flex; align-items: flex-start; gap: 7px; margin-top: 8px; color: #19365B; }
.pm-alert-mark { flex: 0 0 7px; width: 7px; height: 7px; margin-top: 4px; border-radius: 50%; background: #D49A2A; }
.pm-alert-item.empty .pm-alert-mark { background: #D64545; }
.pm-alert-item strong, .pm-alert-item small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pm-alert-item strong { font-size: .7rem; }
.pm-alert-item small { margin-top: 2px; color: #8C9BAB; font-size: .62rem; }
.pm-alerts-empty { color: #8C9BAB; font-size: .68rem; }
.pm-user-menu > button { width: 100%; border: 0; border-radius: 10px; padding: 10px; background: transparent; color: #19365B; text-align: left; font: 600 .78rem 'Inter', sans-serif; cursor: pointer; }
.pm-user-menu > button:hover { background: #F1F5F9; }

@media (max-width: 768px) {
  .pos-modern-layout { height: 100dvh; min-height: 100dvh; padding: 0; overflow: hidden; }
  .pm-screen { height: 100%; min-height: 0; overflow-x: hidden; overflow-y: auto; overscroll-behavior-y: contain; -webkit-overflow-scrolling: touch; }
  .pm-header { position: sticky; top: 0; min-height: 62px; box-sizing: border-box; padding: 10px 14px; }
  .pm-logo-area { min-width: 0; flex: 1; gap: 8px; }
  .pm-logo-area img { flex: 0 0 auto; width: 34px; height: 34px; }
  .pm-brand { font-size: 1.18rem; white-space: nowrap; }
  .pm-store-name { min-width: 0; max-width: 145px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .72rem; }
  .pm-user-area { flex: 0 0 auto; gap: 0; }
  .pm-user-av { width: 38px; height: 38px; }
  .pm-body { display: flex; flex-direction: column; min-height: 0; overflow: visible; }
  .pm-main { display: contents; }
  .pm-toolbar { display: grid; grid-template-columns: 1fr; padding: 12px 14px 8px; gap: 10px; }
  .pm-search { grid-column: 1; width: 100%; height: 46px; box-sizing: border-box; padding: 0 13px; }
  .pm-search input { font-size: .9rem; }
  .pm-mobile-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .pm-mobile-action { min-height: 44px; border: 0; border-radius: 11px; display: flex; align-items: center; justify-content: center; gap: 7px; font: 700 .78rem 'Inter', sans-serif; cursor: pointer; }
  .pm-mobile-scan { background: #19365B; color: #FFFFFF; }
  .pm-mobile-pay { background: #FFF4D9; color: #9A6A1E; border: 1px solid #E9C978; }
  .pm-tool-actions { display: none; }
  .pm-banner-carousel { order: 1; margin: 6px 14px 14px; border-radius: 15px; }
  .pm-carousel-slide { min-height: 116px; box-sizing: border-box; padding: 15px; }
  .pm-slide-badge { font-size: .64rem; }
  .pm-slide-title { max-width: 72%; font-size: 1.28rem; overflow-wrap: anywhere; }
  .pm-slide-visual { font-size: 2.4rem; }
  .pm-cart { order: 2; width: auto; margin: 0 14px 16px; border: 0; border-radius: 17px; box-shadow: 0 6px 18px rgba(15,43,91,.08); flex: 0 0 auto; min-height: 0; max-height: none; }
  .pm-cart-header { padding: 14px 16px 10px; }
  .pm-cart-title { font-size: 1rem; }
  .pm-cart-body { min-height: 84px; max-height: 170px; padding: 0 16px; }
  .pm-empty-state { min-height: 82px; }
  .pm-empty-state svg { width: 32px; height: 32px; margin-bottom: 6px; }
  .pm-empty-state h3 { font-size: .95rem; }
  .pm-empty-state p { font-size: .76rem; }
  .pm-cart-footer { padding: 10px 16px 14px; }
  .pm-totals-grid { grid-template-columns: 1fr; gap: 3px; margin-bottom: 10px; }
  .pm-tot-box { flex-direction: row; justify-content: space-between; padding: 2px 0; background: transparent !important; }
  .pm-tot-items { display: none; }
  .pm-tot-box span { font-size: .8rem; color: #19365B; }
  .pm-tot-box b { font-size: .95rem; color: #19365B; }
  .pm-tot-total span, .pm-tot-total b { color: #6B21A8; font-size: 1rem; }
  .pm-btn-cobrar { height: 48px; border-radius: 12px; font-size: 1rem; }
  .pm-section-header { order: 3; margin: 0; padding: 0 16px 10px; }
  .pm-section-header h3 { font-size: 1.12rem; }
  .cat-sb { order: 4; position: sticky; bottom: auto; left: auto; width: auto; height: auto; margin: 0; padding: 0 14px 10px; border-radius: 0; box-shadow: none; background: transparent; display: flex; justify-content: flex-start; gap: 8px; overflow-x: auto; overflow-y: hidden; z-index: 1; }
  .cat-item { flex: 0 0 auto; min-height: 38px; padding: 8px 12px; border: 1px solid #E2E8F0; border-radius: 10px; background: #FFFFFF; font-size: .75rem; }
  .cat-item.act { background: #EAF0FA; color: #19365B; border-color: #C5D6ED; }
  .prod-area { order: 5; overflow: visible; min-height: 240px; padding: 0 14px calc(18px + env(safe-area-inset-bottom)); grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
  .pm-user-menu { position: fixed; top: 58px; right: 12px; }
}

@media (min-width: 769px) {
  .pm-user-menu { right: 0; }
}

/* Tablets use the same readable flow as phones instead of forcing the desktop split view. */
@media (max-width: 1024px) {
  .pos-modern-layout { height: 100dvh; min-height: 100dvh; padding: 0; overflow: hidden; }
  .pm-screen { height: 100%; min-height: 0; border-radius: 0; overflow-x: hidden; overflow-y: auto; overscroll-behavior-y: contain; -webkit-overflow-scrolling: touch; }
  .pm-header { position: sticky; top: 0; z-index: 50; padding: 12px 18px; }
  .pm-header-actions { display: none; }
  .pm-user-area { gap: 0; }
  .pm-user-area .sync-chip { display: none; }
  .pm-toolbar { display: grid; grid-template-columns: 1fr; padding: 12px 18px 8px; gap: 10px; }
  .pm-search { grid-column: 1; width: 100%; box-sizing: border-box; }
  .pm-mobile-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
  .pm-tool-actions { display: none; }
  .pm-body { display: flex; flex-direction: column; min-height: 0; overflow: visible; }
  .pm-main { display: contents; }
  .pm-banner-carousel { order: 1; margin: 8px 18px 16px; }
  .pm-cart { order: 2; width: auto; margin: 0 18px 16px; border: 0; border-radius: 18px; min-height: 0; max-height: none; }
  .pm-section-header { order: 3; padding: 0 20px 10px; margin: 0; }
  .cat-sb { order: 4; position: static; width: auto; height: auto; margin: 0; padding: 0 18px 10px; border: 0; box-shadow: none; background: transparent; display: flex; gap: 8px; overflow-x: auto; overflow-y: hidden; }
  .cat-item { flex: 0 0 auto; min-height: 40px; border: 1px solid #E2E8F0; border-radius: 10px; background: #FFFFFF; padding: 8px 12px; }
  .prod-area { order: 5; overflow: visible; min-height: 280px; padding: 0 18px calc(24px + env(safe-area-inset-bottom)); grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
  .pm-carousel-track { width: 100%; }
  .pm-carousel-slide { min-width: 0; }
  .pm-slide-content { min-width: 0; }
  .pm-slide-title { white-space: pre-line; overflow: hidden; max-height: 3.2em; overflow-wrap: anywhere; }
}

@media (max-width: 520px) {
  .pm-header { padding-inline: 12px; }
  .pm-toolbar { padding-inline: 12px; }
  .pm-banner-carousel { margin-inline: 12px; }
  .pm-cart { margin-inline: 12px; }
  .pm-section-header { padding-inline: 14px; }
  .cat-sb { padding-inline: 12px; }
  .prod-area { padding-inline: 12px; }
  .pm-user-menu { top: 58px; right: 8px; }
}


/* ================== BANNER CAROUSEL ================== */
.pm-banner-carousel {
  position: relative;
  overflow: hidden;
  border-radius: 20px;
  margin-bottom: 24px;
  box-shadow: 0 10px 30px rgba(0,0,0,0.08);
}
.pm-carousel-track {
  display: flex;
  transition: transform 0.6s cubic-bezier(0.25, 1, 0.5, 1);
  width: 100%;
}
.pm-carousel-slide {
  flex: 0 0 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 28px 32px;
  color: white;
  position: relative;
  overflow: hidden;
}
/* Glassy, elegant shine effect */
.pm-carousel-slide::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle, rgba(255,255,255,0.1) 0%, transparent 60%);
  transform: rotate(30deg);
  pointer-events: none;
}
.pm-slide-content {
  position: relative;
  z-index: 2;
  flex: 1;
}
.pm-slide-badge {
  display: inline-block;
  font-size: 0.7rem;
  font-weight: 800;
  background: rgba(0,0,0,0.2);
  padding: 4px 10px;
  border-radius: 12px;
  color: #FFFFFF;
  margin-bottom: 10px;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  backdrop-filter: blur(4px);
  border: 1px solid rgba(255,255,255,0.1);
}
.pm-slide-title {
  font-size: 1.6rem;
  font-weight: 800;
  line-height: 1.15;
  text-shadow: 0 2px 4px rgba(0,0,0,0.15);
}
.pm-slide-title span {
  font-size: 1.05rem;
  font-weight: 500;
  opacity: 0.95;
  display: block;
  margin-top: 4px;
}
.pm-slide-visual {
  position: relative;
  z-index: 2;
  font-size: 4rem;
  line-height: 1;
  filter: drop-shadow(0 12px 24px rgba(0,0,0,0.3));
  margin-left: 16px;
}
.pm-slide-visual img {
  width: 72px;
  height: 72px;
  object-fit: contain;
  filter: drop-shadow(0 8px 16px rgba(0,0,0,0.25));
}
.pm-carousel-dots {
  position: absolute;
  bottom: 14px;
  left: 0;
  width: 100%;
  display: flex;
  justify-content: center;
  gap: 8px;
  z-index: 5;
}
.pm-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(255,255,255,0.3);
  transition: all 0.3s ease;
}
.pm-dot.active {
  background: white;
  width: 20px;
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}

/* Fix mobile order and margins for carousel */
@media (max-width: 768px) {
  .pm-banner-carousel {
    order: 1;
    margin: 4px 16px 16px 16px;
    border-radius: 16px;
  }
  .pm-carousel-slide {
    padding: 20px 24px;
  }
  .pm-slide-title {
    font-size: 1.3rem;
  }
  .pm-slide-title span {
    font-size: 0.95rem;
  }
  .pm-slide-visual {
    font-size: 3rem;
  }
  .pm-slide-visual img {
    width: 56px;
    height: 56px;
  }
}

/* Banner mobile: preserve a clear reading hierarchy on narrow screens. */
@media (max-width: 600px) {
  .pm-banner-carousel { margin-bottom: 16px; }
  .pm-carousel-slide {
    min-height: 142px;
    height: 142px;
    padding: 18px 16px 25px;
    align-items: center;
    box-sizing: border-box;
  }
  .pm-slide-content {
    min-width: 0;
    max-width: calc(100% - 78px);
    overflow: hidden;
  }
  .pm-slide-badge {
    display: block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: .61rem;
    line-height: 1.2;
    padding: 5px 9px;
    margin-bottom: 8px;
  }
  .pm-slide-title {
    max-width: 100%;
    font-size: 1.18rem;
    line-height: 1.08;
    overflow: hidden;
    overflow-wrap: normal;
    word-break: normal;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
  }
  .pm-slide-title span {
    margin-top: 6px;
    font-size: .76rem;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .pm-slide-visual {
    flex: 0 0 62px;
    width: 62px;
    margin-left: 10px;
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .pm-slide-visual img {
    width: 56px;
    height: 56px;
    object-fit: contain;
  }
  .pm-carousel-dots { bottom: 8px; }
}

/* Mobile and tablet priority: catalog first, sale summary after products. */
@media (max-width: 1024px) {
  .pm-banner-carousel { order: 1; }
  .pm-section-header { order: 2; }
  .cat-sb { order: 3; }
  .prod-area { order: 4; }
  .pm-cart { order: 5; }
  .pm-cart.pm-cart-empty { display: none; }
}

@media (max-width: 600px) {
  .pm-banner-carousel { display: block; }
}

.ci-q-val.ci-q-weight{min-width:64px;padding:0 6px;white-space:nowrap;cursor:pointer}
.weight-dialog{display:grid;gap:.6rem}

/* Etiquetas de precio (Administración) */
.label-dialog{display:grid;gap:.7rem;max-width:640px;width:100%}
.label-dialog .label-list{max-height:280px;overflow:auto;border:1px solid var(--line,#dbe3ef);border-radius:12px;padding:.25rem;display:block}
.label-dialog .label-row{display:grid!important;grid-template-columns:auto minmax(0,1fr) auto 68px;gap:.6rem;align-items:center;padding:.35rem .5rem;border-radius:8px;cursor:pointer;margin:0}
.label-dialog .label-row:hover{background:rgba(15,43,91,.05)}
.label-dialog .label-row[hidden]{display:none!important}
.label-dialog .label-row input[type=checkbox]{width:18px;height:18px;margin:0}
.label-dialog .label-name{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.label-dialog .label-price{font-variant-numeric:tabular-nums;opacity:.8;white-space:nowrap;font-size:.85rem}
.label-dialog .label-copies{width:68px!important;min-width:0;padding:.3rem .4rem;text-align:center;display:block}
.label-dialog .label-opts{display:grid;gap:.5rem}
.label-dialog .label-opts>label{display:grid;gap:.25rem;font-weight:600}
.label-dialog .label-opts>label.label-check{display:flex;gap:.5rem;align-items:center;font-weight:500}
.label-dialog .label-offsets{display:flex;gap:1rem;flex-wrap:wrap}
.label-dialog .label-offsets label{display:grid;gap:.25rem;font-weight:600}
.label-dialog .label-off{width:110px!important;display:block}
.label-dialog .label-summary{font-weight:700;margin:0}

/* Historial archivado (Administración → Ventas) */
.archive-dialog{display:grid;gap:.7rem;max-width:680px;width:100%}
.archive-dialog .archive-filters{display:grid;gap:.5rem}
.archive-dialog .archive-filters label{display:grid;gap:.2rem;font-weight:600}
.archive-dialog .archive-list{display:grid;gap:.4rem;max-height:320px;overflow:auto}
.archive-dialog .archive-row{display:flex;justify-content:space-between;gap:.6rem;align-items:center;padding:.5rem .6rem;border:1px solid var(--line,#dbe3ef);border-radius:10px}
.archive-dialog .archive-main{display:grid;gap:.1rem;min-width:0}
.archive-dialog .archive-main span{font-size:.8rem;opacity:.75}
.archive-dialog .archive-actions{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}

/* ── Fiado, alertas y resurtido ─────────────────────────────────────────────────────────── */
.credit-pick{display:grid;gap:.4rem;max-height:210px;overflow:auto;margin:.5rem 0}
.credit-opt{display:flex;justify-content:space-between;gap:.75rem;align-items:center;text-align:left;padding:.6rem .8rem;border:1px solid var(--line,#d9dee8);border-radius:12px;background:#fff;cursor:pointer;font:inherit}
.credit-opt strong{font-weight:700}.credit-opt span{font-size:.82rem;opacity:.75}
.credit-opt.sel{border-color:#0f2b5b;box-shadow:0 0 0 2px rgba(15,43,91,.18);background:#f2f6ff}.credit-opt.off{opacity:.55}
.credit-info{margin:.5rem 0;padding:.55rem .75rem;border-radius:10px;background:#f4f6fb;font-size:.9rem}
.credit-info.good{background:#eaf7ee;color:#14532d}.credit-info.warn{background:#fff6e0;color:#7a4b00}.credit-info.bad{background:#fdecec;color:#8a1c1c}
.credit-dialog,.insight-dialog{display:grid;gap:.75rem;min-width:min(620px,86vw);max-width:100%}
.credit-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.6rem}
.credit-tile{padding:.7rem .85rem;border-radius:14px;background:#f4f6fb;display:grid;gap:.15rem}.credit-tile small{opacity:.7}.credit-tile strong{font-size:1.15rem}
.credit-tile.bad{background:#fdecec;color:#8a1c1c}
.credit-list{display:grid;gap:.45rem;max-height:46vh;overflow:auto}
.credit-row{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:.7rem .9rem;border:1px solid var(--line,#d9dee8);border-radius:12px;background:#fff;cursor:pointer;font:inherit;text-align:left}
.credit-row.late{border-color:#e4a1a1;background:#fff8f8}
.credit-name,.credit-bal{display:grid;gap:.1rem}.credit-bal{text-align:right}.credit-row small{opacity:.7}
.credit-form{display:grid;gap:.5rem;padding:.8rem;border:1px solid var(--line,#d9dee8);border-radius:14px}
.credit-actions{display:flex;flex-wrap:wrap;gap:.5rem}
.credit-err{color:#b3261e;min-height:1.1em;margin:0;font-size:.88rem}
.credit-h{margin:.25rem 0 0}
.credit-moves{display:grid;gap:.35rem;max-height:30vh;overflow:auto}
.credit-move{display:flex;justify-content:space-between;gap:1rem;padding:.5rem .1rem;border-bottom:1px solid #edf0f5}
.credit-move span{display:grid;gap:.1rem}.credit-move span:last-child{text-align:right}.credit-move small{opacity:.65}
.credit-move.payment strong:last-child,.credit-move.refund strong:last-child{color:#14633a}
.insight-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin:0 0 1.25rem}
.insight-card{display:grid;gap:.45rem;align-content:start;padding:1rem 1.1rem;border-radius:18px;background:#fff;border:1px solid var(--line,#d9dee8);border-left:6px solid #7a8aa6;box-shadow:0 6px 20px rgba(15,43,91,.06)}
.insight-card.sev-ok{border-left-color:#2f9e63}.insight-card.sev-low{border-left-color:#3b82c4}.insight-card.sev-medium{border-left-color:#e0a100}.insight-card.sev-high{border-left-color:#d64545}
.insight-head{display:flex;justify-content:space-between;gap:.75rem;align-items:center}.insight-head strong{font-size:1.02rem}
.insight-badge{padding:.15rem .6rem;border-radius:999px;background:#eef2f9;font-size:.8rem;font-weight:700}
.insight-card.sev-high .insight-badge{background:#fdecec;color:#8a1c1c}.insight-card.sev-medium .insight-badge{background:#fff3d6;color:#7a4b00}.insight-card.sev-ok .insight-badge{background:#e6f6ec;color:#14633a}
.insight-line{margin:0;font-size:.9rem;display:flex;gap:.45rem;align-items:flex-start}.insight-more{margin:0;font-size:.82rem;opacity:.7}
.insight-dot{flex:none;width:.55rem;height:.55rem;margin-top:.4rem;border-radius:50%;background:#7a8aa6}
.insight-line.sev-high .insight-dot{background:#d64545}.insight-line.sev-medium .insight-dot{background:#e0a100}.insight-line.sev-low .insight-dot{background:#3b82c4}
.insight-card .suite-btn{justify-self:start;margin-top:.3rem}
.insight-alert{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;padding:.8rem .9rem;border-radius:14px;background:#f7f8fb;border-left:5px solid #7a8aa6}
.insight-alert.sev-high{border-left-color:#d64545;background:#fff7f7}.insight-alert.sev-medium{border-left-color:#e0a100;background:#fffbf0}.insight-alert.sev-low{border-left-color:#3b82c4}
.insight-alert p{margin:.2rem 0}.insight-alert small{opacity:.65}.insight-alert strong{display:block}
.insight-tag{display:inline-block;margin-bottom:.2rem;padding:.05rem .5rem;border-radius:999px;background:#e8edf5;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}
.insight-empty{padding:1.2rem;text-align:center;border-radius:14px;background:#eef8f1;color:#14633a;font-weight:600}
.insight-supplier{display:grid;gap:.6rem;padding:.9rem;border:1px solid var(--line,#d9dee8);border-radius:16px}
.insight-sup-head strong{display:block;font-size:1.05rem}.insight-sup-head small{opacity:.7}
.insight-table-wrap{overflow:auto}.insight-table{width:100%;border-collapse:collapse;font-size:.9rem}
.insight-table th{text-align:left;font-size:.75rem;text-transform:uppercase;opacity:.65;padding:.35rem .5rem}
.insight-table td{padding:.45rem .5rem;border-top:1px solid #edf0f5;vertical-align:middle}.insight-table td small{display:block;opacity:.65}
.insight-table tr.urg-agotado td:first-child{border-left:4px solid #d64545}.insight-table tr.urg-critico td:first-child{border-left:4px solid #e0a100}.insight-table tr.urg-bajo td:first-child{border-left:4px solid #3b82c4}
.insight-qty{width:5.5rem}
@media (max-width:640px){.credit-dialog,.insight-dialog{min-width:0}.insight-alert{flex-direction:column}}
@media (prefers-color-scheme:dark){.credit-opt,.credit-row,.insight-card,.credit-form,.insight-supplier{background:#161c28;border-color:#2c3548;color:inherit}.credit-tile,.credit-info,.insight-alert{background:#1b2332}.credit-opt.sel{background:#1f2b45}}
.credit-move small.credit-items{opacity:.8;max-width:22rem;font-size:.78rem}


/* css/81-modern-admin.css */
/* Administración responsiva: conserva la paleta y el lenguaje visual del acceso. */
#v-admin {
  background: linear-gradient(135deg, #E6EEF5 0%, #F4F7F9 100%);
  color: #19365B;
  font-family: 'Inter', sans-serif;
  overflow: hidden;
  padding: clamp(10px, 2vw, 22px);
}

#v-admin .adm-top,
#v-admin .adm-body {
  width: min(1500px, 100%);
  margin-inline: auto;
}

#v-admin .adm-top {
  min-height: 74px;
  padding: 12px 18px;
  border: 1px solid #D4DDEA;
  border-bottom-color: #E6EEF5;
  border-radius: 20px 20px 0 0;
  background: #FFFFFF;
  box-shadow: 0 12px 32px rgba(25, 42, 70, .06);
  gap: 12px;
}

#v-admin .adm-logo-row { gap: 10px; }
#v-admin .adm-logo {
  width: 42px;
  height: 42px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, .08);
}
#v-admin .adm-brand { font-size: 1.15rem; }
#v-admin .adm-brand .nb { color: #19365B; }
#v-admin .adm-brand .gb { color: #AD8236; }
#v-admin .adm-titlabel { color: #8C9BAB; }
#v-admin .adm-title {
  min-width: 0;
  color: #19365B;
  font-size: .95rem;
  font-weight: 700;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#v-admin .adm-top .suite-btn,
#v-admin .adm-pos-btn {
  min-height: 42px;
  padding: 0 14px;
  border-radius: 10px;
  box-shadow: none;
  white-space: nowrap;
}
#v-admin .adm-top .suite-btn {
  border: 1px solid #D4DDEA;
  background: #FFFFFF;
  color: #19365B;
}
#v-admin .adm-top .suite-btn:hover { background: #F4F7F9; }
#v-admin .adm-pos-btn {
  background: #19365B;
  color: #FFFFFF;
}

#v-admin .adm-body {
  display: flex;
  min-height: 0;
  flex: 1;
  overflow: hidden;
  border: 1px solid #D4DDEA;
  border-top: 0;
  border-radius: 0 0 20px 20px;
  background: #FFFFFF;
  box-shadow: 0 12px 32px rgba(25, 42, 70, .06);
}

#v-admin .adm-sidebar {
  display: flex !important;
  width: 250px;
  padding: 14px 10px 18px;
  border-right: 1px solid #D4DDEA;
  background: #FFFFFF;
  scrollbar-width: thin;
  scrollbar-color: #B0C0D4 transparent;
}
#v-admin .adm-nav-lbl {
  padding: 16px 12px 6px;
  color: #8C9BAB;
  font-size: .62rem;
  letter-spacing: .08em;
}
#v-admin .adm-nav-item {
  min-height: 42px;
  margin: 2px 0;
  padding: 10px 12px;
  border: 0;
  border-radius: 10px;
  color: #19365B;
  font-size: .78rem;
  font-weight: 600;
  line-height: 1.25;
}
#v-admin .adm-nav-item:hover { background: #F4F7F9; }
#v-admin .adm-nav-item.act {
  border: 0;
  background: linear-gradient(135deg, #2A4563 0%, #19365B 100%);
  color: #FFFFFF;
  box-shadow: 0 6px 16px rgba(25, 42, 70, .15);
}
#v-admin .adm-nav-item svg { width: 17px; height: 17px; }

#v-admin .adm-main {
  width: auto;
  max-width: none;
  height: 100%;
  min-width: 0;
  margin: 0;
  padding: clamp(18px, 2.5vw, 34px);
  background: #F4F7F9;
  overscroll-behavior: contain;
}
#v-admin .adm-sec { width: min(1180px, 100%); margin-inline: auto; }
#v-admin .adm-sec.act { animation: admin-section-in .18s ease-out; }

#v-admin .admin-home-head {
  position: relative;
  min-height: 138px;
  margin: 0 0 18px;
  padding: clamp(22px, 4vw, 38px);
  overflow: hidden;
  border-radius: 18px;
  background: linear-gradient(135deg, #2A4563 0%, #19365B 100%);
  box-shadow: 0 8px 20px rgba(25, 42, 70, .15);
}
#v-admin .admin-home-head::after {
  content: '';
  position: absolute;
  width: 190px;
  height: 190px;
  right: -60px;
  bottom: -105px;
  border: 24px solid rgba(255, 255, 255, .08);
  border-radius: 50%;
}
#v-admin .admin-home-head h2 {
  position: relative;
  z-index: 1;
  margin: 0 0 8px;
  color: #FFFFFF;
  font-size: clamp(1.55rem, 3vw, 2.25rem);
  letter-spacing: -.03em;
}
#v-admin .admin-home-head p {
  position: relative;
  z-index: 1;
  max-width: 58ch;
  color: #E6EEF5;
  font-size: .9rem;
  line-height: 1.55;
}

#v-admin .admin-menu-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  padding-bottom: 8px;
}
#v-admin .admin-tile {
  height: auto;
  min-height: 112px;
  padding: 16px;
  grid-template-columns: 42px minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 12px;
  row-gap: 5px;
  border: 1px solid #D4DDEA;
  border-top: 1px solid #D4DDEA;
  border-left: 4px solid var(--tile-color, #AD8236);
  border-radius: 14px;
  background: #FFFFFF;
  box-shadow: 0 4px 12px rgba(25, 42, 70, .06);
}
#v-admin .admin-tile:hover {
  border-color: #B0C0D4;
  box-shadow: 0 8px 18px rgba(25, 42, 70, .10);
  transform: translateY(-2px);
}
#v-admin .admin-tile .tile-icon {
  grid-row: 1 / 3;
  display: grid;
  width: 42px;
  height: 42px;
  place-items: center;
  align-self: center;
  border-radius: 12px;
  background: #F4F7F9;
  color: #19365B;
}
#v-admin .admin-tile .tile-icon svg { width: 24px; height: 24px; }
#v-admin .admin-tile b {
  align-self: end;
  color: #19365B;
  font-size: .9rem;
  line-height: 1.25;
}
#v-admin .admin-tile small {
  align-self: start;
  color: #8C9BAB;
  font-size: .72rem;
  line-height: 1.35;
  white-space: normal;
}

#v-admin .adm-ph {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
}
#v-admin .adm-ph-title { color: #19365B; font-size: clamp(1.2rem, 2.2vw, 1.65rem); }
#v-admin .adm-ph-sub { color: #8C9BAB; font-size: .82rem; line-height: 1.45; }
#v-admin .suite-card,
#v-admin .adm-panel,
#v-admin .adm-sc {
  border-color: #D4DDEA;
  box-shadow: 0 4px 12px rgba(25, 42, 70, .06);
}
#v-admin .adm-panel { overflow-x: auto; }
#v-admin .adm-tbl { min-width: 640px; }
#v-admin .suite-toolbar { align-items: end; }
#v-admin :is(button, input, select, textarea):focus-visible {
  outline: 3px solid #19365B;
  outline-offset: 2px;
}

@keyframes admin-section-in {
  from { opacity: 0; transform: translateY(5px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 1180px) {
  #v-admin .admin-menu-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  #v-admin .adm-sidebar { width: 222px; }
}

@media (max-width: 900px) {
  #v-admin { padding: 10px; }
  #v-admin .adm-top { border-radius: 16px 16px 0 0; }
  #v-admin .adm-body {
    flex-direction: column;
    border-radius: 0 0 16px 16px;
  }
  #v-admin .adm-sidebar {
    position: static;
    inset: auto;
    z-index: auto;
    width: 100%;
    height: 66px;
    min-height: 66px;
    padding: 8px;
    flex-flow: row nowrap;
    gap: 6px;
    overflow-x: auto;
    overflow-y: hidden;
    border-right: 0;
    border-bottom: 1px solid #D4DDEA;
    scrollbar-width: none;
  }
  #v-admin .adm-sidebar::-webkit-scrollbar { display: none; }
  #v-admin .adm-nav-lbl { display: none; }
  #v-admin .adm-nav-item {
    flex: 0 0 auto;
    min-height: 48px;
    margin: 0;
    padding: 10px 13px;
    white-space: nowrap;
  }
  #v-admin .adm-main { padding: 20px; }
  #v-admin .admin-menu-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
  #v-admin { padding: 0; }
  #v-admin .adm-top {
    min-height: 68px;
    padding: 8px 10px;
    border-width: 0 0 1px;
    border-radius: 0;
  }
  #v-admin .adm-logo { width: 38px; height: 38px; }
  #v-admin .adm-brand { font-size: 1rem; }
  #v-admin .adm-top > span,
  #v-admin .adm-titlabel,
  #v-admin .adm-sp { display: none; }
  #v-admin .adm-title {
    order: 10;
    flex: 1 0 100%;
    max-width: none;
    padding-left: 2px;
    font-size: .78rem;
  }
  #v-admin .adm-top .suite-btn,
  #v-admin .adm-pos-btn {
    width: auto;
    min-width: 40px;
    min-height: 40px;
    padding: 0 9px;
    font-size: .7rem;
  }
  #v-admin .adm-body { border: 0; border-radius: 0; }
  #v-admin .adm-sidebar { height: 60px; min-height: 60px; padding: 6px 8px; }
  #v-admin .adm-nav-item { min-height: 46px; padding: 9px 11px; font-size: .72rem; }
  #v-admin .adm-main { padding: 14px 10px 28px; }
  #v-admin .admin-home-head { min-height: 124px; padding: 22px 18px; border-radius: 14px; }
  #v-admin .admin-home-head p { font-size: .8rem; }
  #v-admin .admin-menu-grid { gap: 9px; }
  #v-admin .admin-tile {
    min-height: 106px;
    padding: 12px 10px;
    grid-template-columns: 34px minmax(0, 1fr);
    column-gap: 8px;
  }
  #v-admin .admin-tile .tile-icon { width: 34px; height: 34px; border-radius: 9px; }
  #v-admin .admin-tile .tile-icon svg { width: 21px; height: 21px; }
  #v-admin .admin-tile b { font-size: .8rem; }
  #v-admin .admin-tile small { font-size: .66rem; }
  #v-admin .adm-ph { align-items: stretch; flex-direction: column; gap: 10px; }
  #v-admin .adm-ph > .suite-btn { width: 100%; }
  #v-admin .suite-toolbar > * { flex: 1 1 145px; min-width: 0; }
  #v-admin .suite-toolbar > .suite-btn { min-height: 44px; }
}

@media (max-width: 350px) {
  #v-admin .admin-menu-grid { grid-template-columns: minmax(0, 1fr); }
  #v-admin .admin-tile { min-height: 92px; }
}

@media (prefers-reduced-motion: reduce) {
  #v-admin .adm-sec.act { animation: none; }
  #v-admin .admin-tile { transition: none; }
}

/* Cabecera de administración: identidad centrada y acciones dentro del perfil. */
#v-admin .adm-top {
  position: relative;
  justify-content: flex-end;
}

#v-admin .adm-header-center {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: calc(100% - 390px);
  text-align: left;
}

#v-admin .adm-header-center .adm-logo-row {
  justify-content: center;
  gap: 12px;
  white-space: nowrap;
}
#v-admin .adm-header-center .adm-logo {
  width: 48px;
  height: 48px;
}
#v-admin .adm-header-center .adm-brand {
  font-size: 1.55rem;
  line-height: 1;
  letter-spacing: -.55px;
}
#v-admin .adm-header-center .adm-title {
  margin-top: 1px;
  color: var(--text3);
  font-size: .67rem;
  font-weight: 600;
  line-height: 1.2;
}

#v-admin .adm-user { position: relative; margin-left: auto; }
#v-admin .adm-user-trigger {
  min-height: 48px;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 4px 8px 4px 5px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface);
  color: var(--text);
  text-align: left;
}
#v-admin .adm-user-trigger:hover { background: var(--surface3); }
#v-admin .adm-user-trigger:focus-visible { outline: 3px solid rgba(184,145,63,.3); outline-offset: 2px; }
#v-admin .adm-user-avatar {
  width: 38px;
  height: 38px;
  position: relative;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  overflow: hidden;
  border: 2px solid var(--surface);
  border-radius: 50%;
  color: var(--surface);
  font-size: .72rem;
  font-weight: 800;
  line-height: 1;
  box-shadow: 0 0 0 1px var(--border);
}
#v-admin .adm-user-avatar img.adm-user-photo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
#v-admin .adm-user-avatar span.adm-user-photo {
  display: grid;
  width: 100%;
  height: 100%;
  place-items: center;
  padding: 0;
}
#v-admin .adm-user-copy { min-width: 0; display: grid; gap: 1px; }
#v-admin .adm-user-copy strong { max-width: 165px; overflow: hidden; color: var(--navy); font-size: .76rem; text-overflow: ellipsis; white-space: nowrap; }
#v-admin .adm-user-copy small { color: var(--text3); font-size: .62rem; }
#v-admin .adm-user-chevron { width: 15px; height: 15px; color: var(--text3); transition: transform var(--dur); }
#v-admin .adm-user-trigger[aria-expanded="true"] .adm-user-chevron { transform: rotate(180deg); }

#v-admin .adm-user-menu {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 210;
  width: 246px;
  padding: 7px;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--surface);
  box-shadow: var(--sh-lg);
}
#v-admin .adm-user-menu-head { display: grid; gap: 2px; padding: 8px 9px 10px; border-bottom: 1px solid var(--border); margin-bottom: 5px; }
#v-admin .adm-user-menu-head strong { color: var(--navy); font-size: .8rem; }
#v-admin .adm-user-menu-head small { color: var(--text3); font-size: .67rem; }
#v-admin .adm-user-menu button {
  width: 100%;
  min-height: 40px;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 8px 9px;
  border-radius: 8px;
  background: transparent;
  color: var(--text2);
  font-size: .75rem;
  font-weight: 600;
  text-align: left;
}
#v-admin .adm-user-menu button:hover,
#v-admin .adm-user-menu button:focus-visible { background: var(--surface3); color: var(--navy); outline: none; }
#v-admin .adm-user-menu button .lucide { width: 17px; height: 17px; color: var(--gold); }
#v-admin .adm-user-logout { border-top: 1px solid var(--border); margin-top: 4px; border-radius: 0 0 8px 8px; }

@media (max-width: 760px) {
  #v-admin .adm-header-center { max-width: calc(100% - 170px); }
  #v-admin .adm-user-copy { display: none; }
  #v-admin .adm-user-trigger { gap: 3px; }
}

@media (max-width: 600px) {
  #v-admin .adm-header-center .adm-logo { width: 40px; height: 40px; }
  #v-admin .adm-header-center .adm-logo-row { gap: 8px; }
  #v-admin .adm-header-center .adm-brand { display: block; font-size: 1.15rem; letter-spacing: -.4px; }
  #v-admin .adm-header-center .adm-title { order: initial; max-width: 120px; padding: 0; font-size: .62rem; }
  #v-admin .adm-user-trigger { min-height: 44px; }
  #v-admin .adm-user-avatar { width: 34px; height: 34px; }
  #v-admin .adm-user-menu { position: fixed; top: 62px; right: 10px; width: min(246px, calc(100vw - 20px)); }
}

@media (max-width: 300px) {
  #v-admin .adm-header-center .adm-brand { display: none; }
  #v-admin .adm-header-center .adm-logo-row { gap: 0; }
}

@media print {
  #v-admin { padding: 0; background: #FFFFFF; }
  #v-admin .adm-body { border: 0; box-shadow: none; }
}


/* css/82-workflows.css */
/* Workflows: apertura, conciliación y diálogos operativos. */
.lucide{width:1.15em;height:1.15em;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}

/* Apertura: conserva la paleta existente y cambia únicamente composición y jerarquía. */
#v-apertura{--ap-navy:#19365B;--ap-gold:#B88936;--ap-bg:#F4F7F9;--ap-border:#E6EEF5;--ap-muted:#8C9BAB;padding:clamp(.75rem,3vw,2rem)}
#v-apertura .ap-card{max-width:980px;min-height:min(610px,calc(100dvh - 4rem));padding:0;display:grid;grid-template-columns:minmax(280px,.82fr) minmax(360px,1.18fr);gap:0;overflow:hidden;border-radius:24px}
#v-apertura .ap-intro{position:relative;display:flex;flex-direction:column;padding:clamp(1.75rem,4vw,3.4rem);background:var(--ap-navy);color:#FFFFFF;isolation:isolate;overflow:hidden}
#v-apertura .ap-intro::after{content:"";position:absolute;right:-35%;bottom:-22%;width:90%;aspect-ratio:1;border:1px solid rgba(255,255,255,.11);border-radius:50%;box-shadow:0 0 0 42px rgba(255,255,255,.035),0 0 0 84px rgba(255,255,255,.025);z-index:-1}
#v-apertura .ap-header{justify-content:flex-start;text-align:left}
#v-apertura .ap-brand-wrap{align-items:flex-start}
#v-apertura .ap-brand{font-size:clamp(2rem,4vw,2.65rem)}
#v-apertura .ap-brand .nb{color:#FFFFFF}#v-apertura .ap-brand .gb{color:var(--ap-gold)}
#v-apertura .ap-tagline{color:#FFFFFF;opacity:.68}
#v-apertura .ap-section-head{display:grid;grid-template-columns:auto 1fr;gap:1rem;text-align:left;margin:auto 0}
#v-apertura .ap-kicker-icon{width:44px;height:44px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.2);border-radius:13px;color:var(--ap-gold)}
#v-apertura .ap-kicker-icon .lucide{width:22px;height:22px}
#v-apertura .ap-eyebrow{color:var(--ap-gold);margin:0 0 .5rem}
#v-apertura .ap-head{color:#FFFFFF;font-size:clamp(1.65rem,3vw,2.45rem);line-height:1.02;letter-spacing:-.035em;text-transform:none;margin-bottom:.75rem}
#v-apertura .ap-sub{color:#FFFFFF;opacity:.68;max-width:30ch;line-height:1.55}
#v-apertura .ap-shift-flow{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;padding-top:1.25rem;border-top:1px solid rgba(255,255,255,.13)}
#v-apertura .ap-step{display:grid;gap:.3rem;color:#FFFFFF;opacity:.46;font-size:.65rem;text-transform:uppercase;letter-spacing:.08em}
#v-apertura .ap-step b{font-size:.72rem;color:var(--ap-gold)}#v-apertura .ap-step.is-current{opacity:1}
#v-apertura .ap-workspace{display:flex;flex-direction:column;justify-content:center;padding:clamp(2rem,5vw,4.25rem);min-width:0;background:#FFFFFF}
#v-apertura .ap-emp-container{align-items:stretch;margin-bottom:2rem}
#v-apertura .ap-field-heading{display:flex;justify-content:space-between;align-items:center;color:var(--ap-muted);font-size:.69rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:.65rem}
#v-apertura .ap-field-heading .lucide{color:var(--ap-gold)}
#v-apertura .ap-emp{flex-direction:row;justify-content:flex-start;text-align:left;padding:1rem 1.1rem;gap:.85rem;border-left:3px solid var(--ap-gold)}
#v-apertura .ap-emp-av{width:44px;height:44px;display:grid;place-items:center;border-radius:12px;color:#FFFFFF;font-weight:800;flex:0 0 auto}
#v-apertura .ap-emp-copy{display:grid;gap:.18rem}#v-apertura .ap-emp-name{font-size:.875rem;font-weight:700}#v-apertura .ap-emp-role{font-size:.7rem;color:var(--ap-muted)}
#v-apertura .ap-fund-section{align-items:stretch}#v-apertura .ap-lbl{text-align:left;margin-bottom:.6rem}
#v-apertura .ap-inp-wrap{max-width:none;margin:0 0 .65rem}#v-apertura .ap-inp{text-align:left;height:68px;padding-left:3rem;font-size:1.65rem}
#v-apertura .ap-note{display:flex;align-items:flex-start;gap:.45rem;text-align:left;line-height:1.45}#v-apertura .ap-note .lucide{margin-top:.08rem;color:var(--ap-gold)}
#v-apertura .ap-actions{display:grid;grid-template-columns:1.5fr 1fr;align-items:center;margin-top:2rem}
#v-apertura .ap-btn,#v-apertura .ap-ghost{display:flex;align-items:center;justify-content:center;gap:.55rem}#v-apertura .ap-btn .lucide,#v-apertura .ap-ghost .lucide{width:17px;height:17px}

/* Corte: lectura a la izquierda, decisión a la derecha. */
#v-corte{align-items:center;justify-content:center;overflow:auto;padding:clamp(.75rem,3vw,2rem);background:var(--bg)}
#v-corte .corte-card{width:min(960px,100%);max-width:none;margin:auto;padding:clamp(1.35rem,3vw,2.35rem);border:1px solid var(--border);border-radius:var(--r20)}
#v-corte .corte-head{align-items:flex-start;gap:1rem;margin-bottom:1.5rem}
#v-corte .corte-icon{width:48px;height:48px;display:grid;place-items:center;background:var(--navy);color:#FFFFFF;border-radius:14px}#v-corte .corte-icon .lucide{width:23px;height:23px}
#v-corte .corte-eyebrow{display:block;color:var(--gold);font-size:.65rem;font-weight:800;letter-spacing:.13em;margin-bottom:.22rem}
#v-corte .corte-title{font-size:clamp(1.45rem,3vw,2rem);letter-spacing:-.025em;line-height:1.1}#v-corte .corte-sub{margin:.35rem 0 0}
#v-corte .corte-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:1rem}
#v-corte .corte-grid,#v-corte .corte-reconcile{margin:0;padding:1.25rem;border:1px solid var(--border);border-radius:var(--r12);background:var(--surface3)}
#v-corte .cg-title{display:flex;align-items:center;justify-content:space-between;padding-bottom:.85rem;margin-bottom:.3rem;border-bottom:1px solid var(--border);font-size:.75rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--text2)}#v-corte .cg-title .lucide{color:var(--gold)}
#v-corte .cg-row{min-height:39px;margin:0;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:1rem}#v-corte .cg-row:last-child{border-bottom:0}#v-corte .cg-row.is-negative .cg-val{color:var(--error)}
#v-corte .cg-row.total{margin-top:.45rem;padding:.75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--r8)}
#v-corte .corte-reconcile{background:var(--surface);display:flex;flex-direction:column}
#v-corte .corte-section-heading{display:flex;gap:.75rem;align-items:flex-start;margin-bottom:1.4rem}#v-corte .corte-section-heading>.lucide{width:21px;height:21px;color:var(--gold);margin-top:.1rem}
#v-corte .corte-section-heading h2{font-size:.95rem;color:var(--text)}#v-corte .corte-section-heading p{font-size:.73rem;color:var(--text3);margin-top:.15rem}
#v-corte .corte-inp{height:62px;font-size:1.45rem;background:var(--surface3)}#v-corte .corte-diff{margin-bottom:1rem}
#v-corte .corte-meta{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:auto}#v-corte .corte-meta>div{padding:.75rem;background:var(--surface3);border-radius:var(--r8)}
#v-corte .corte-meta dt{font-size:.65rem;color:var(--text3);margin-bottom:.22rem}#v-corte .corte-meta dd{font-size:.88rem;font-weight:750;color:var(--text);font-variant-numeric:tabular-nums}
#v-corte .corte-foot{justify-content:flex-end;margin-top:1rem}#v-corte .corte-back,#v-corte .corte-ok{flex:0 1 210px;display:flex;align-items:center;justify-content:center;gap:.5rem}

/* Modales: shell común, áreas táctiles y acciones persistentes. */
.modal-ov{padding:clamp(.5rem,2vw,1.5rem)}.modal-box,.tkt-box,.confirm-box,.cam-box{border-radius:var(--r20)}
.modal-head{gap:1rem;margin-bottom:1rem}.modal-heading{display:flex;align-items:center;gap:.75rem;min-width:0}
.modal-heading-icon{width:38px;height:38px;display:grid;place-items:center;background:var(--surface3);border:1px solid var(--border);border-radius:11px;color:var(--navy)}
.modal-eyebrow{display:block;font-size:.59rem;font-weight:800;letter-spacing:.11em;color:var(--gold);margin-bottom:.16rem}.modal-title{font-size:1.05rem}
.modal-x{width:36px;height:36px;border-radius:10px}.modal-x .lucide{width:17px;height:17px}
.pay-modal{width:min(820px,calc(100vw - 2rem));max-width:820px;padding:1.4rem;overflow:hidden}
.pay-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}.pay-tab{display:flex;align-items:center;justify-content:center;gap:.45rem;min-height:46px;padding:.55rem;min-width:0}.pay-tab .lucide{width:17px;height:17px}
.pay-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.9fr);gap:.85rem;max-height:min(52vh,430px);overflow:auto;padding:.1rem}.pay-summary{margin:0;min-width:0}
.pay-method-panel{min-width:0;padding:.95rem;border:1px solid var(--border);border-radius:var(--r12)}
.pay-card-confirm{min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:1rem;background:var(--surface3);border-radius:var(--r12)}
.pay-card-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:var(--navy);color:#FFFFFF;margin-bottom:.8rem}.pay-card-icon .lucide{width:24px;height:24px}
.pay-card-copy{font-size:.78rem;color:var(--text2)}.pay-card-total{font-size:1.6rem;color:var(--navy);margin-top:.4rem;font-variant-numeric:tabular-nums}
.pay-mix-field label{display:flex;align-items:center;gap:.35rem}.pay-mix-field label .lucide{width:14px;height:14px;color:var(--gold)}
.pay-foot{justify-content:flex-end;margin-top:1rem}.pay-cancel-btn{flex:0 1 140px}.pay-ok-btn{flex:0 1 230px;display:flex;align-items:center;justify-content:center;gap:.45rem}.pay-nota{min-height:1em}
.tkt-box{width:min(720px,calc(100vw - 2rem))}.tkt-head{position:sticky;top:0;z-index:2;justify-content:space-between;background:var(--surface);padding:.75rem;flex-wrap:wrap}
.tkt-actions-primary,.tkt-actions-secondary{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.tkt-print,.tkt-close{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-height:36px}
.tkt-print .lucide,.tkt-close .lucide{width:15px;height:15px}.tkt-close.icon-only{width:36px;padding:0}
.confirm-box{width:min(390px,100%);padding:2rem}.confirm-icon{width:54px;height:54px;display:grid;place-items:center;margin:0 auto 1rem;border-radius:16px;background:var(--error-bg);color:var(--error)}.confirm-icon .lucide{width:26px;height:26px}.confirm-title{font-size:1.15rem}
.cam-box{width:min(580px,100%)}.cam-head{padding:.85rem 1rem;margin:0;border-bottom:1px solid var(--border)}.cam-viewport{position:relative;background:#000}.cam-guide{position:absolute;inset:18%;border:2px solid var(--gold);border-radius:12px;box-shadow:0 0 0 999px rgba(0,0,0,.25);pointer-events:none}

button:focus-visible,input:focus-visible{outline:3px solid rgba(184,145,63,.35);outline-offset:2px}

@media (max-width:760px){#v-apertura .ap-card{grid-template-columns:1fr;min-height:0;overflow:visible}#v-apertura .ap-intro{padding:1.5rem;min-height:270px}#v-apertura .ap-section-head{margin:2rem 0}#v-apertura .ap-workspace{padding:1.5rem}#v-corte .corte-layout{grid-template-columns:1fr}.pay-modal{height:min(94dvh,780px);overflow-y:auto}.pay-body{grid-template-columns:1fr;max-height:none;overflow:visible}}
@media (max-width:520px){#v-apertura{padding:.6rem;align-items:flex-start}#v-apertura .ap-card{border-radius:18px}#v-apertura .ap-intro,#v-apertura .ap-workspace{padding:1.2rem}#v-apertura .ap-intro{min-height:250px}#v-apertura .ap-head{font-size:1.55rem}#v-apertura .ap-actions{grid-template-columns:1fr}#v-apertura .ap-btn:hover{transform:none}#v-corte{align-items:flex-start;padding:.6rem}#v-corte .corte-card{padding:1rem;border-radius:16px}#v-corte .corte-meta{grid-template-columns:1fr}#v-corte .corte-foot{display:grid;grid-template-columns:1fr}#v-corte .corte-back,#v-corte .corte-ok{flex-basis:auto}.modal-ov{align-items:flex-end;padding:0}.modal-box,.tkt-box,.confirm-box,.cam-box{width:100%;max-width:none;border-radius:18px 18px 0 0;max-height:94dvh}.pay-modal{padding:1rem}.pay-tabs{grid-template-columns:1fr 1fr}.pay-mix-grid{grid-template-columns:1fr}.pay-foot{position:sticky;bottom:-1rem;background:var(--surface);padding:.8rem 0 1rem;z-index:2}.tkt-head{align-items:flex-start}.tkt-actions-primary,.tkt-actions-secondary{width:100%}.tkt-print,.tkt-close{flex:1}.confirm-box{padding:1.5rem}.confirm-foot{display:grid;grid-template-columns:1fr}}
@media (max-width:360px){#v-apertura .ap-shift-flow{display:none}#v-apertura .ap-intro{min-height:220px}.pay-tab{font-size:.7rem}.tkt-print span,.tkt-close span{display:none}}
@media (max-height:540px) and (orientation:landscape){#v-apertura{align-items:flex-start}#v-apertura .ap-card{min-height:500px}#v-corte{align-items:flex-start}.modal-ov{align-items:flex-start;overflow:auto}}
@media (prefers-reduced-motion:reduce){.modal-ov,.modal-box,.tkt-box,.confirm-box,.cam-box,#v-apertura .ap-btn{transition:none!important}}

/* En pantallas cortas el contenido debe iniciar arriba, nunca centrarse fuera del viewport. */
@media (max-width:520px){#v-apertura,#v-corte{justify-content:flex-start}#v-corte .corte-card{margin:0 auto}}


/* css/83-cashier-v2.css */
/* ═══ Pantalla de cobro v2: banner de 1 fila, resumen en 2 líneas, cuadro de escaneo ═══ */

/* — Banner: una sola fila, tocar = pausar, deslizar = anterior/siguiente — */
#v-pos .pm-banner-carousel{height:38px;min-height:0;margin:6px 14px 8px;border-radius:12px;box-shadow:none;cursor:pointer;touch-action:pan-y;user-select:none;-webkit-user-select:none;position:relative}
#v-pos .pm-banner-carousel:focus-visible{outline:3px solid #f2c75c;outline-offset:2px}
#v-pos .pm-carousel-track{height:100%}
#v-pos .pm-carousel-slide{height:38px;min-height:0!important;padding:0 12px!important;display:flex;align-items:center;justify-content:flex-start;gap:9px;background-image:none!important;color:#fff;box-sizing:border-box}
#v-pos .pm-carousel-slide::before{display:none}
#v-pos .pm-carousel-slide .pm-slide-badge{flex:0 0 auto;margin:0!important;padding:2px 8px!important;font-size:.62rem!important;letter-spacing:.04em;border-radius:9px;background:rgba(255,255,255,.22)!important;color:#fff!important;border:0!important;white-space:nowrap;max-width:46%;overflow:hidden;text-overflow:ellipsis}
#v-pos .pm-carousel-slide .pm-slide-title{flex:1 1 auto;min-width:0;max-width:none!important;margin:0;font-size:.88rem!important;font-weight:700!important;line-height:1.2;color:#fff!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;max-height:none!important}
#v-pos .pm-carousel-dots{display:none}
#v-pos .pm-banner-carousel.paused::after{content:"⏸";position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:.8rem;color:#fff;background:rgba(0,0,0,.3);border-radius:8px;padding:1px 6px}
#v-pos .pm-tone-0{background-color:#0f2b5b!important}
#v-pos .pm-tone-1{background-color:#0e7a5f!important}
#v-pos .pm-tone-2{background-color:#8a4fb3!important}
#v-pos .pm-tone-3{background-color:#c25a12!important}
#v-pos .pm-tone-4{background-color:#0a7ea4!important}
#v-pos .pm-tone-5{background-color:#b02a4a!important}

/* — Barra del carrito en UNA línea: 🛒 Art. · 🗑✕ · Total · Cobrar · ▲ (la lista se despliega con el botón) — */
#v-pos .pm-cart{display:flex;flex-direction:column}
#v-pos .pm-cart-header{order:2;display:flex;align-items:center;gap:6px;padding:8px 10px!important;border:0;flex-wrap:nowrap}
#v-pos .pm-cart-title{flex:0 0 auto;display:flex;align-items:center;gap:5px;font-size:.85rem;font-weight:700;white-space:nowrap;color:#0f2b5b}
#v-pos .pm-cart-count-lbl b,#v-pos .pm-cart-count-lbl .cart-cnt{background:none;color:#0f2b5b;font-size:1.05rem;font-weight:900;padding:0;border-radius:0;line-height:1}
#v-pos .pm-cart-clear{flex:0 0 auto;display:inline-flex;align-items:center;gap:1px;min-width:40px;height:40px;padding:0 8px!important;border-radius:10px;color:#c62828!important;background:#fdecec!important;border:1px solid #f5c2c2;justify-content:center;cursor:pointer}
#v-pos .pm-clear-x{font-size:.8rem;font-weight:900;line-height:1}
#v-pos .pm-cart-clear:disabled{opacity:.45}
#v-pos .pm-cart-total{flex:1 1 auto;min-width:0;text-align:right;white-space:nowrap;color:#581c87;line-height:1.1}
#v-pos .pm-cart-total .pm-total-lbl{font-size:.68rem;font-weight:700;color:#7e22ce;margin-right:2px}
#v-pos .pm-cart-total b{font-size:clamp(1.05rem,4.6vw,1.4rem);font-weight:900;color:#3b0764}
#v-pos .pm-cart-header .pm-btn-cobrar{flex:0 0 auto;width:auto;height:42px;padding:0 16px;margin:0;border-radius:12px;font-size:1rem;font-weight:900;background:#16a34a;color:#fff;border:0;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 4px 12px rgba(22,163,74,.35);cursor:pointer}
#v-pos .pm-cart-header .pm-btn-cobrar:disabled{background:#9aa9a0;box-shadow:none;cursor:not-allowed}
#v-pos .pm-cart-toggle{flex:0 0 auto;width:42px;height:42px;border:1px solid #c5d3e8;border-radius:12px;background:#fff;color:#0f2b5b;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
#v-pos .pm-cart-toggle svg{transition:transform .2s}
#v-pos .pm-cart-toggle.open svg{transform:rotate(180deg)}
#v-pos .pm-cart-body,#v-pos .pm-cart-list{order:1}

/* — Iconos dentro del buscador: báscula y micrófono — */
#v-pos .pm-search{position:relative}
#v-pos .pm-search-ico{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:40px;height:40px;border:0;border-radius:50%;background:#eef3fb;color:#0f2b5b;cursor:pointer;padding:0 9px}
#v-pos .pm-search-ico:hover{background:#dde8f7}
#v-pos .pm-ico-mic{background:#fdecec;color:#c62828}
#v-pos .pm-ico-scale.connected{background:#dcfce7;color:#15803d;box-shadow:0 0 0 2px #86efac}
#v-pos .pm-scale-wt{font:800 .72rem Inter,sans-serif;white-space:nowrap}
#v-pos .pm-search input{min-width:0}

/* — Cuadro de escaneo en el mismo lugar del buscador — */
.pm-scan-box{display:none;flex:1 1 100%;min-width:0}
.pm-scan-box:not([hidden]){display:block}
.pm-scan-view{position:relative;height:150px;border-radius:14px;overflow:hidden;background:#0b1730;border:2px solid #f2c75c}
.pm-scan-video{width:100%;height:100%;object-fit:cover;display:block}
.pm-scan-line{position:absolute;left:8%;right:8%;top:50%;height:2px;background:#ff3b3b;box-shadow:0 0 8px #ff3b3b;animation:pmScan 1.6s ease-in-out infinite alternate}
@keyframes pmScan{from{top:22%}to{top:78%}}
@media (prefers-reduced-motion:reduce){.pm-scan-line{animation:none}}
.pm-scan-end{position:absolute;right:8px;top:8px;border:0;border-radius:10px;padding:9px 14px;font:800 .85rem Inter,sans-serif;background:#fff;color:#0f2b5b;cursor:pointer;min-height:40px}
.pm-scan-status{margin:6px 2px 0;font-size:.78rem;font-weight:600;color:#0f2b5b}
.pm-scan-misses{display:grid;gap:5px;margin-top:5px}
.pm-scan-miss{display:flex;align-items:center;gap:8px;padding:4px 6px 4px 12px;border-radius:10px;background:#fff4d9;border:1px solid #e9c978;color:#7a4e00;font:700 .88rem ui-monospace,Menlo,monospace}
.pm-scan-miss span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}
.pm-scan-miss small{font:600 .68rem Inter,sans-serif;color:#9a6a1e}
.pm-scan-miss button{flex:0 0 auto;width:40px;height:40px;border:0;border-radius:10px;background:#fff;color:#c62828;font-size:1.1rem;font-weight:900;cursor:pointer}
#v-pos.pm-scanning .pm-search,
#v-pos.pm-scanning .pm-mobile-actions,
#v-pos.pm-scanning .pm-tool-actions,
#v-pos.pm-scanning .pm-header-actions{display:none!important}
#v-pos .pm-cart-count-lbl .cart-cnt{background:none;color:#0f2b5b;font-size:1.1rem;font-weight:900;padding:0;border-radius:0;line-height:1}

/* — Escritorio: botones de producto más visibles y filas parejas — */
@media (min-width:1025px){
  #v-pos .prod-area{grid-template-columns:repeat(auto-fill,minmax(205px,1fr))!important;grid-auto-rows:max-content!important;gap:16px!important;align-content:start}
  #v-pos .prod-card.product-tile{min-height:150px;background:#fff!important;border:2px solid var(--category-border,#b8c4d6)!important;box-shadow:0 3px 10px rgba(15,43,91,.14)!important}
  #v-pos .prod-card.product-tile:hover:not(:disabled){box-shadow:0 8px 20px rgba(15,43,91,.22)!important;transform:translateY(-2px)}
  #v-pos .pm-banner-carousel{margin:10px 36px 6px}
}

/* — Móvil/tableta: barra del carrito fija abajo, lista plegada por defecto — */
@media (max-width:1024px){
  #v-pos .pm-cart{position:sticky;bottom:0;z-index:40;order:9;margin:0!important;border-radius:18px 18px 0 0!important;box-shadow:0 -6px 18px rgba(15,43,91,.2)!important;padding-bottom:env(safe-area-inset-bottom);background:#fff}
  #v-pos .pm-cart.pm-cart-empty{display:flex!important}
  #v-pos .pm-cart:not(.pm-cart-open) .pm-cart-body,
  #v-pos .pm-cart:not(.pm-cart-open) .pm-cart-list{display:none!important}
  #v-pos .pm-cart.pm-cart-open .pm-cart-list{flex:0 0 auto!important;max-height:min(46vh,380px)!important;overflow-y:auto;padding:0 12px}
  #v-pos .pm-cart.pm-cart-open .pm-cart-body{min-height:70px;max-height:120px}
  #v-pos .pm-cart.pm-cart-open .pm-cart-header{border-top:1px solid #e3eaf5}
  #v-pos .prod-area{padding-bottom:calc(90px + env(safe-area-inset-bottom))!important}
}
@media (min-width:1025px){#v-pos .pm-cart-toggle{display:none}#v-pos .pm-cart-header{padding:10px 12px!important}#v-pos .pm-cart-total .pm-total-lbl{display:none}}

/* — Escritorio: botones de producto más visibles y filas parejas — */
@media (min-width:1025px){
  #v-pos .prod-area{grid-template-columns:repeat(auto-fill,minmax(205px,1fr))!important;grid-auto-rows:max-content!important;gap:16px!important;align-content:start}
  #v-pos .prod-card.product-tile{min-height:150px;background:#fff!important;border:2px solid var(--category-border,#b8c4d6)!important;box-shadow:0 3px 10px rgba(15,43,91,.14)!important}
  #v-pos .prod-card.product-tile:hover:not(:disabled){box-shadow:0 8px 20px rgba(15,43,91,.22)!important;transform:translateY(-2px)}
  #v-pos .pm-banner-carousel{margin:10px 36px 6px}
}

/* — Móvil/tableta: la lista del carrito siempre se ve; al escanear el carrito sube para ver los productos agregarse — */
@media (max-width:1024px){
  #v-pos .pm-cart-list{flex:0 0 auto!important;max-height:230px!important;overflow-y:auto}
  #v-pos.pm-scanning .pm-cart{order:1}
  #v-pos.pm-scanning .pm-banner-carousel{order:0}
  #v-pos.pm-scanning .pm-cart.pm-cart-empty{display:none}
}

@media (min-width:1025px){#v-pos .pm-cart-header{order:0}#v-pos .pm-cart-total .pm-total-lbl{display:inline}}
@media (max-width:400px){
  #v-pos .pm-mobile-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  #v-pos .pm-mobile-action{min-width:0;padding:0 6px}
  #v-pos .pm-search{gap:6px;padding:0 6px 0 10px!important}
  #v-pos .pm-search-ico{min-width:36px;height:36px;padding:0 7px}
  #v-pos .pm-search svg:first-child{flex:0 0 auto}
  #v-pos .pm-cart-header{gap:4px;padding:8px 6px!important}
  #v-pos .pm-cart-header .pm-btn-cobrar{padding:0 12px}
  #v-pos .pm-cart-toggle{width:38px}
  #v-pos .pm-cart-clear{min-width:36px;padding:0 5px!important}
  #v-pos .pm-cart-title{gap:3px;font-size:.78rem}
  #v-pos .pm-cart-total .pm-total-lbl{display:none}
}
@media (max-width:1024px){#v-pos .pm-toolbar{grid-template-columns:minmax(0,1fr)!important}#v-pos .pm-search{min-width:0}}

/* — Panel de PIN del demo — */
.demo-pins{margin-top:8px;padding:10px 12px;border-radius:12px;background:#fff;border:1px solid #c5d3e8;display:grid;gap:4px;text-align:left}
.demo-pins strong{font-size:.85rem;color:#0f2b5b}
.demo-pin-row{display:flex;justify-content:space-between;gap:12px;font-size:.82rem;color:#334155}
.demo-pin-row b{font-variant-numeric:tabular-nums;letter-spacing:.08em;color:#0f2b5b}
.demo-pins small{color:#64748b;font-size:.72rem}
.demo-pins .suite-btn{justify-self:start;margin-top:4px}
html[data-edition="production"] [data-demo-only]{display:none!important}
html[data-edition="demo"] #v-login .business-mode-notice{position:static!important;transform:none!important;margin:10px auto 14px!important;width:min(94vw,520px);box-sizing:border-box}


/* css/84-receipt.css */
/* Receipt presentation shared by the POS modal and public ticket page. */
.receipt-sheet{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-size:13px;line-height:1.5;color:#182a43;background:#fff}.receipt-brand{text-align:center;border-bottom:1px dashed #b7c2cf;padding-bottom:17px;margin-bottom:14px}.receipt-brand img{max-width:150px;max-height:72px;width:auto;height:auto;display:block;object-fit:contain;margin:0 auto 8px}.receipt-wordmark{font-weight:800;font-size:26px;color:#0f2b5b}.receipt-wordmark span{color:#b8913f}.receipt-kicker{font-size:9px;font-weight:700;letter-spacing:2px;color:#826426;margin:8px 0}.receipt-brand h2{font-size:19px;margin:4px 0;line-height:1.25;overflow-wrap:anywhere}.receipt-brand p{font-size:11px;color:#46556a;margin:3px 0;overflow-wrap:anywhere}.receipt-row{display:flex;justify-content:space-between;gap:12px;margin:4px 0}.receipt-row>span{min-width:0;overflow-wrap:anywhere}.receipt-row>strong{text-align:right;min-width:0;max-width:65%;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.receipt-meta{font-size:11px;margin-bottom:16px}.receipt-item-heading{display:flex;justify-content:space-between;font-size:9px;font-weight:750;letter-spacing:1.2px;padding:9px 0;border-top:1px solid #d8dfe8;border-bottom:1px solid #d8dfe8}.receipt-item{padding:11px 0;border-bottom:1px dashed #d8dfe8;break-inside:avoid;page-break-inside:avoid}.receipt-item-name{font-weight:650;overflow-wrap:anywhere}.receipt-item-code{font-size:9px;color:#59687a;overflow-wrap:anywhere;margin-top:2px}.receipt-item-detail{font-size:11px;color:#46556a}.receipt-item-detail strong{color:#182a43}.receipt-totals{margin-top:16px;break-inside:avoid;page-break-inside:avoid}.receipt-grand{padding-top:12px;margin-top:10px;border-top:2px solid #182a43;font-size:22px;color:#0f2b5b}.receipt-grand>span{font-size:14px;font-weight:800;align-self:center}.receipt-words{font-size:10px;text-align:center;color:#46556a;line-height:1.6;overflow-wrap:anywhere;margin:10px 0}.receipt-payment{font-size:11px;background:#f2f5f8;padding:11px 13px;border-radius:10px;margin:14px 0;break-inside:avoid;page-break-inside:avoid}.receipt-qr{text-align:center;border-top:1px dashed #b7c2cf;padding:18px 0 8px;break-inside:avoid;page-break-inside:avoid}.receipt-qr svg{display:block;width:160px;height:160px;max-width:100%;margin:0 auto 9px;background:#fff}.receipt-qr>strong{font-size:13px}.receipt-qr p{font-size:11px;line-height:1.5;color:#46556a;margin:5px 0}.receipt-qr-status{font-size:10px!important}.receipt-footer{text-align:center;border-top:1px dashed #b7c2cf;margin-top:16px;padding-top:16px;font-size:11px;break-inside:avoid;page-break-inside:avoid}.receipt-footer strong{font-size:14px}.receipt-footer p{font-size:10px;color:#59687a;margin:7px 0}.receipt-footer>div{font-size:10px;color:#826426;letter-spacing:.4px}@media print{.receipt-brand{padding-bottom:12px;margin-bottom:10px}.receipt-meta{margin-bottom:12px}.receipt-item{padding:8px 0}.receipt-item-heading{padding:6px 0}.receipt-totals{margin-top:10px}.receipt-grand{padding-top:8px;margin-top:8px}.receipt-words{margin:7px 0}.receipt-payment{margin:10px 0;padding:8px 11px}.receipt-qr{padding-top:12px}.receipt-qr p{font-size:10px;line-height:1.3}.receipt-footer{margin-top:12px;padding-top:10px}.receipt-footer p{margin:4px 0}.receipt-sheet{color:#000;font-size:11px}.receipt-brand h2{font-size:17px}.receipt-grand{font-size:21px;color:#000}.receipt-payment{background:#fff;border:1px solid #ccc}.receipt-qr svg{width:40mm;height:40mm}.receipt-brand p,.receipt-item-code,.receipt-item-detail,.receipt-words,.receipt-qr p,.receipt-footer p,.receipt-footer>div{color:#000}}

