/* =============================================
   POS COMIDA RÁPIDA v2 - DARK PROFESSIONAL UI
   Mobile-First / Touch-Optimized / 360px safe
   ============================================= */

:root {
    --bg-0: #0a0a14;
    --bg-1: #111122;
    --bg-2: #181830;
    --bg-3: #1f1f3d;
    --bg-4: #282850;
    --bg-hover: #2e2e58;
    --text-0: #f4f4f8;
    --text-1: #c0c0d8;
    --text-2: #8888a8;
    --text-3: #5c5c7a;
    --accent: #FF6B35;
    --accent-h: #ff8855;
    --accent-bg: rgba(255,107,53,.12);
    --green: #00d26a;
    --green-bg: rgba(0,210,106,.12);
    --red: #ff3b5c;
    --red-bg: rgba(255,59,92,.12);
    --yellow: #ffbe0b;
    --yellow-bg: rgba(255,190,11,.12);
    --blue: #38bdf8;
    --blue-bg: rgba(56,189,248,.12);
    --purple: #a78bfa;
    --border: #2a2a4e;
    --shadow: 0 2px 12px rgba(0,0,0,.35);
    --r-sm: 6px;
    --r: 10px;
    --r-md: 10px;
    --r-lg: 14px;
    --r-full: 9999px;
    --hdr: 56px;
    --nav: 64px;
    --ease: cubic-bezier(.4,0,.2,1);
}

/* Fix: author display:flex overrides UA [hidden]{display:none} without !important */
[hidden] { display: none !important; }

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{font-size:14px;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,sans-serif;background:var(--bg-0);color:var(--text-0);min-height:100dvh;overflow-x:hidden;-webkit-font-smoothing:antialiased}
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}
input,select,button,textarea{font-family:inherit}

/* ===== SPLASH ===== */
.splash{position:fixed;inset:0;background:var(--bg-0);display:flex;align-items:center;justify-content:center;z-index:9999;transition:opacity .5s var(--ease)}
.splash.hide{opacity:0;pointer-events:none}
.splash-content{text-align:center}
.splash-icon-wrap{width:80px;height:80px;margin:0 auto 1.2rem;border-radius:20px;background:linear-gradient(135deg,var(--accent),#ff9966);display:flex;align-items:center;justify-content:center;font-size:2.2rem;color:#fff;animation:pulse 1.5s infinite}
.splash h1{font-size:1.6rem;font-weight:800;color:var(--text-0);letter-spacing:-.02em}
.splash h1 span{color:var(--accent)}
.splash-loader{width:60px;height:3px;background:var(--bg-3);border-radius:2px;margin:1rem auto 0;overflow:hidden}
.splash-bar{width:40%;height:100%;background:var(--accent);border-radius:2px;animation:load .9s ease infinite}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
@keyframes load{0%{transform:translateX(-100%)}100%{transform:translateX(250%)}}

/* ===== HEADER ===== */
.pos-header{position:fixed;top:0;left:0;width:100%;height:var(--hdr);background:var(--bg-1);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 .75rem;gap:.5rem;z-index:100}
.header-brand{display:flex;align-items:center;gap:.4rem;cursor:pointer;flex-shrink:0}
.header-brand i{font-size:1.3rem;color:var(--accent)}
.header-brand span{font-weight:700;font-size:1rem;color:var(--text-0)}
.header-brand b{color:var(--accent)}
.header-nav{display:none;align-items:center;gap:.2rem;flex:1;justify-content:center}
.hn-btn{display:flex;align-items:center;gap:.35rem;padding:.45rem .8rem;border-radius:var(--r);border:none;background:transparent;color:var(--text-2);cursor:pointer;font-size:.8rem;font-weight:600;white-space:nowrap;transition:all .2s var(--ease)}
.hn-btn:hover{background:var(--bg-3);color:var(--text-0)}
.hn-btn.active{background:var(--accent-bg);color:var(--accent)}
.hn-btn i{font-size:.9rem}
.header-actions{display:flex;align-items:center;gap:.5rem;margin-left:auto}
.tasa-chip{display:flex;align-items:center;gap:.3rem;padding:.3rem .7rem;border-radius:20px;background:var(--yellow-bg);border:1px solid rgba(255,190,11,.2);font-size:.78rem;color:var(--yellow);cursor:default;font-weight:600;transition:all .2s var(--ease)}
body.role-admin .tasa-chip{cursor:pointer}
.tasa-chip:hover{border-color:var(--yellow)}
.tasa-chip i{font-size:.75rem}
.tasa-chip b{font-weight:800}
.ha-icon{width:36px;height:36px;border-radius:var(--r);border:1px solid var(--border);background:var(--bg-2);color:var(--text-2);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem;transition:all .2s var(--ease)}
.ha-icon:hover{background:var(--accent);color:#fff;border-color:var(--accent)}

/* ===== BOTTOM NAV ===== */
.bottom-nav{position:fixed;bottom:0;left:0;width:100%;height:var(--nav);background:var(--bg-1);border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-around;z-index:100;padding-bottom:env(safe-area-inset-bottom);overflow-x:auto;scrollbar-width:none}
.bottom-nav::-webkit-scrollbar{display:none}
.bn-item{display:flex;flex-direction:column;align-items:center;gap:.15rem;background:none;border:none;color:var(--text-3);cursor:pointer;padding:.3rem .4rem;font-size:.65rem;font-weight:600;transition:color .2s;position:relative;flex:1 0 auto;min-width:52px}
.bn-item i{font-size:1.15rem}
.bn-item span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:56px}
.bn-item.active{color:var(--accent)}
.bn-item.active::before{content:'';position:absolute;top:-1px;width:24px;height:2.5px;background:var(--accent);border-radius:0 0 2px 2px}

/* ===== MAIN ===== */
.pos-main{margin-top:var(--hdr);margin-bottom:var(--nav);min-height:calc(100dvh - var(--hdr) - var(--nav))}
.view{display:none;animation:viewIn .25s var(--ease)}
.view.active{display:block}
@keyframes viewIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}

/* ===== POS LAYOUT ===== */
.pos-layout{display:flex;flex-direction:column;height:calc(100dvh - var(--hdr) - var(--nav))}
.pos-products{flex:1;overflow:hidden;display:flex;flex-direction:column}

/* Categories */
.categories-bar{display:flex;gap:.4rem;padding:.6rem .6rem .3rem;overflow-x:auto;flex-shrink:0;scrollbar-width:none}
.categories-bar::-webkit-scrollbar{display:none}
.cat-btn{display:flex;align-items:center;gap:.3rem;padding:.5rem .75rem;border-radius:20px;border:1.5px solid var(--border);background:var(--bg-2);color:var(--text-2);cursor:pointer;white-space:nowrap;font-size:.75rem;font-weight:600;transition:all .2s var(--ease);flex-shrink:0}
.cat-btn i{font-size:.85rem}
.cat-btn.active{border-color:var(--accent);background:var(--accent-bg);color:var(--accent)}
.cat-btn:active:not(.active){transform:scale(.96)}
.cat-btn-all i{color:var(--accent)}

/* Search */
.products-search{position:relative;margin:0 .6rem .4rem;flex-shrink:0}
.products-search i{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--text-3);font-size:.85rem}
.products-search input{width:100%;padding:.55rem .75rem .55rem 2.2rem;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r);color:var(--text-0);font-size:.85rem;outline:none;transition:border-color .2s}
.products-search input:focus{border-color:var(--accent)}
.products-search input::placeholder{color:var(--text-3)}

/* Products Grid — 1 columna en pantallas muy pequeñas, 2 desde 400px */
.products-grid{flex:1;display:grid;grid-template-columns:1fr;gap:.5rem;padding:0 .6rem .6rem;overflow-y:auto;align-content:start;-webkit-overflow-scrolling:touch}
@media(min-width:400px){.products-grid{grid-template-columns:repeat(2,1fr)}}

/* ===== PRODUCT CARD — Información completa, mobile-first ===== */
/* Imagen sangra a los bordes del card. 16/9 = más corta que 4/3, más productos visibles */
.pc-img{
    margin:-.6rem -.65rem .5rem;
    aspect-ratio:16/9;
    overflow:hidden;
    border-radius:calc(var(--r) - 1.5px) calc(var(--r) - 1.5px) 0 0;
    background:var(--bg-3);
    flex-shrink:0;
}
.pc-img img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform .35s var(--ease);
}
.product-card:hover .pc-img img{transform:scale(1.06)}

/* Modal — zona de carga de imagen */
.piu-wrap{margin-bottom:.75rem}
.piu-preview{
    width:100%;
    aspect-ratio:4/3;
    border-radius:var(--r);
    overflow:hidden;
    background:var(--bg-3);
    border:2px dashed var(--border);
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:.5rem;
    position:relative;
}
.piu-preview img{width:100%;height:100%;object-fit:cover;display:block}
.piu-empty{display:flex;flex-direction:column;align-items:center;gap:.4rem;color:var(--text-3);pointer-events:none}
.piu-empty i{font-size:2.2rem;opacity:.35}
.piu-empty span{font-size:.76rem;font-weight:600}
.piu-row{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
.piu-hint{font-size:.68rem;color:var(--text-3);margin-left:auto}
.insumo-bs-hint{font-size:.76rem;color:var(--yellow);font-weight:600;margin-top:.3rem;min-height:1em;}

.product-card{
    background:var(--bg-2);
    border-radius:var(--r);
    border:1.5px solid var(--border);
    padding:.6rem .65rem .55rem;
    cursor:pointer;
    transition:all .15s var(--ease);
    display:flex;
    flex-direction:column;
    gap:.3rem;
    overflow:hidden;
    user-select:none;
    -webkit-user-select:none;
    min-width:0;
    min-height:108px;
}
.product-card:active{transform:scale(.97);border-color:var(--accent)}

/* Header: nombre en primera fila, badge en segunda — nombre nunca comparte ancho */
.pc-header{display:flex;flex-direction:column;align-items:flex-start;gap:.22rem}

/* Nombre — ocupa todo el ancho disponible, sin corte entre palabras */
.product-card .pc-name{
    font-weight:800;
    font-size:.92rem;
    line-height:1.25;
    color:var(--text-0);
    overflow-wrap:break-word;
    min-width:0;
}

/* Badge de stock — tag compacto debajo del nombre */
.product-card .pc-badge{
    font-size:.62rem;
    padding:.18rem .42rem;
    border-radius:5px;
    font-weight:800;
    line-height:1;
    white-space:nowrap;
    align-self:flex-start;
}
.pc-badge.ok{background:var(--green-bg);color:var(--green)}
.pc-badge.low{background:var(--yellow-bg);color:var(--yellow)}
.pc-badge.out{background:var(--red-bg);color:var(--red)}

/* Descripción — 3 líneas max en cards sin imagen, 2 en cards con imagen */
.product-card .pc-desc{
    font-size:.73rem;
    color:var(--text-2);
    line-height:1.35;
    overflow-wrap:break-word;
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden;
}
.product-card.has-img .pc-desc{-webkit-line-clamp:2}

/* Fila inferior: precios + botón + */
.pc-footer{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:.3rem;
    margin-top:auto;
    padding-top:.35rem;
    padding-bottom:.3rem;
    border-top:1px solid var(--border);
}

/* Precios apilados */
.product-card .pc-prices{display:flex;flex-direction:column;gap:.06rem;flex:1;min-width:0}
.product-card .pc-usd{font-size:1.1rem;font-weight:800;color:var(--green);line-height:1.1;white-space:nowrap}
.product-card .pc-bs{font-size:.76rem;color:var(--yellow);font-weight:700;line-height:1;white-space:nowrap}

/* Agotado */
.product-card.out-of-stock{opacity:.32;pointer-events:none}

/* Botón + en el footer — 40px táctil, sin solaparse con texto */
.product-card .pc-add{
    width:40px;
    height:40px;
    min-width:40px;
    border-radius:50%;
    border:none;
    background:linear-gradient(135deg,var(--accent),#ff9966);
    color:#fff;
    font-size:.95rem;
    display:flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
    transition:transform .15s;
    box-shadow:0 3px 10px rgba(255,107,53,.4);
    flex-shrink:0;
}
.product-card .pc-add:active{transform:scale(.88)}

/* ===== CART ===== */
.pos-cart{display:none;flex-direction:column;background:var(--bg-1);border-top:1px solid var(--border);max-height:65vh}
.pos-cart.show{display:flex;animation:slideUp .25s var(--ease)}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.cart-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem .75rem;border-bottom:1px solid var(--border)}
.cart-header h3{font-size:.9rem;display:flex;align-items:center;gap:.4rem;color:var(--accent)}
.ci-btn{width:32px;height:32px;border-radius:var(--r);border:1px solid var(--border);background:var(--bg-3);color:var(--text-2);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.8rem;transition:all .2s var(--ease)}
.ci-btn:hover{background:var(--bg-4);color:var(--text-0)}
.ci-btn.danger{border-color:rgba(255,59,92,.2);color:var(--red)}
.ci-btn.danger:hover{background:var(--red);color:#fff;border-color:var(--red)}
.cart-items{flex:1;overflow-y:auto;padding:.4rem .6rem}
.cart-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:160px;color:var(--text-3);gap:.5rem;font-size:.85rem;padding:1.5rem 1rem}
.cart-empty i{font-size:2.4rem;opacity:.35}

/* Cart item */
.cart-item{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:.4rem;padding:.45rem .5rem;background:var(--bg-2);border-radius:var(--r);margin-bottom:.35rem;border:1px solid var(--border)}
.ci-info{min-width:0}
.ci-name{font-weight:600;font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ci-price{font-size:.65rem;color:var(--text-3)}
.ci-qty{display:flex;align-items:center;gap:.3rem}
.ci-qty button{width:26px;height:26px;border-radius:50%;border:1px solid var(--border);background:var(--bg-3);color:var(--text-0);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.7rem;transition:all .15s var(--ease)}
.ci-qty button:active{background:var(--accent);border-color:var(--accent)}
.ci-qty span{font-weight:700;min-width:20px;text-align:center;font-size:.85rem}
.ci-subtotal{font-weight:700;font-size:.82rem;color:var(--green);text-align:right;min-width:50px}
.ci-remove{width:24px;height:24px;border-radius:50%;border:none;background:var(--red-bg);color:var(--red);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.65rem;transition:all .15s}
.ci-remove:hover{background:var(--red);color:#fff}

/* Cart footer */
.cart-footer{border-top:1px solid var(--border);padding:.5rem .75rem}
.cart-totals{margin-bottom:.5rem}
.ct-row{display:flex;justify-content:space-between;font-size:.8rem;color:var(--text-2);padding:.1rem 0}
.ct-row.sub{font-size:.75rem;color:var(--text-3)}
.ct-row.main{border-top:2px solid var(--accent);padding-top:.35rem;margin-top:.2rem;font-size:1.05rem;font-weight:800;color:var(--green)}
.ct-row.main-bs{font-size:.8rem;color:var(--yellow);font-weight:600}

/* Cobrar button */
.btn-cobrar{width:100%;padding:.75rem;border-radius:var(--r);border:none;background:linear-gradient(135deg,var(--accent),#ff9966);color:#fff;cursor:pointer;font-size:1rem;font-weight:800;display:flex;align-items:center;justify-content:center;gap:.6rem;transition:all .2s var(--ease);box-shadow:0 4px 16px rgba(255,107,53,.3)}
.btn-cobrar:active{transform:scale(.98)}
.btn-cobrar:disabled{background:var(--bg-4);color:var(--text-3);box-shadow:none;cursor:not-allowed}
.btn-cobrar b{font-size:1.1rem}

/* FAB */
.fab-cart{position:fixed;bottom:calc(var(--nav) + 12px);right:12px;height:48px;border-radius:24px;background:linear-gradient(135deg,var(--accent),#ff9966);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;gap:.4rem;padding:0 1rem 0 .75rem;font-size:.9rem;font-weight:700;box-shadow:0 4px 20px rgba(255,107,53,.4);z-index:50;transition:all .2s var(--ease)}
.fab-cart:active{transform:scale(.95)}
.fab-badge{min-width:20px;height:20px;border-radius:10px;background:var(--red);color:#fff;font-size:.65rem;font-weight:800;display:flex;align-items:center;justify-content:center;padding:0 4px;margin-left:.1rem}
.fab-total{font-size:.8rem;font-weight:700}
.fab-cart.hidden{display:none}

/* ===== COBRO ===== */
.cobro-layout{display:flex;flex-direction:column;min-height:calc(100dvh - var(--hdr) - var(--nav));padding:.75rem}
.cobro-left{margin-bottom:1rem}
.cobro-title-bar{display:flex;align-items:center;gap:.6rem;margin-bottom:.75rem}
.cobro-title-bar h2{font-size:1.1rem;flex:1}
.cobro-orden-num{font-size:.75rem;color:var(--text-3);background:var(--bg-3);padding:.2rem .6rem;border-radius:var(--r)}
.cobro-resumen-wrap{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}
.cobro-resumen{max-height:180px;overflow-y:auto;padding:.6rem}
.cobro-resumen-item{display:flex;justify-content:space-between;padding:.25rem 0;font-size:.82rem;border-bottom:1px solid var(--border)}
.cobro-resumen-item:last-child{border:none}
.cobro-totals-display{background:var(--bg-3);padding:.75rem;border-top:1px solid var(--border)}
.ctd-main{display:flex;align-items:baseline;gap:.75rem;justify-content:flex-end}
.ctd-usd{font-size:1.5rem;font-weight:800;color:var(--green)}
.ctd-bs{font-size:1rem;color:var(--yellow);font-weight:600}
.cobro-section-title{font-size:.9rem;color:var(--text-2);margin-bottom:.6rem}

/* Pago Methods */
/* Métodos de pago — siempre 2×2 para caber en paneles estrechos */
.pago-methods{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;margin-bottom:.75rem}
.pm-btn{display:flex;align-items:center;gap:.55rem;padding:.75rem .65rem;border-radius:var(--r);border:1.5px solid var(--border);background:var(--bg-2);color:var(--text-1);cursor:pointer;font-size:.82rem;font-weight:700;transition:all .15s var(--ease);min-height:56px}
.pm-btn:hover{border-color:var(--accent);background:var(--bg-3)}
.pm-btn:active{transform:scale(.97);border-color:var(--accent)}
.pm-icon{width:38px;height:38px;border-radius:var(--r);display:flex;align-items:center;justify-content:center;font-size:1.05rem;flex-shrink:0}
.pm-icon.bs{background:var(--yellow-bg);color:var(--yellow)}
.pm-icon.usd{background:var(--green-bg);color:var(--green)}
.pm-icon.movil{background:var(--blue-bg);color:var(--blue)}
.pm-icon.tarjeta{background:rgba(167,139,250,.12);color:var(--purple)}
.pm-icon.zelle{background:rgba(0,180,216,.12);color:#00b4d8}
.pm-icon.cashea{background:rgba(249,115,22,.12);color:#f97316}

.pagos-list{margin-bottom:.6rem}
.pago-added{display:flex;align-items:center;justify-content:space-between;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r);padding:.5rem .7rem;margin-bottom:.35rem;font-size:.82rem}
.pa-info{display:flex;align-items:center;gap:.4rem}
.pa-info i{font-size:1rem}
.pa-amount{font-weight:700;color:var(--green)}
.pa-remove{background:none;border:none;color:var(--red);cursor:pointer;font-size:.9rem;padding:.2rem}

.cobro-balance{background:var(--bg-2);border-radius:var(--r);padding:.75rem;margin-bottom:.75rem;border:1px solid var(--border)}
.cb-row{display:flex;justify-content:space-between;font-size:1.05rem;font-weight:700}
.cb-row.pendiente span:last-child{color:var(--red)}
.cb-row.vuelto span:last-child{color:var(--green)}
.cb-row.pagado span:last-child{color:var(--blue)}

.btn-confirmar-pago{width:100%;padding:.85rem;border-radius:var(--r);border:none;background:var(--green);color:#fff;cursor:pointer;font-size:1.05rem;font-weight:800;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:all .2s var(--ease);box-shadow:0 4px 16px rgba(0,210,106,.25)}
.btn-confirmar-pago:active{transform:scale(.98)}
.btn-confirmar-pago:disabled{background:var(--bg-4);color:var(--text-3);box-shadow:none;cursor:not-allowed}

/* ===== PANELS (Ordenes, Reportes, Inventario, Caja) ===== */
.panel-container{padding:.75rem;max-width:1100px;margin:0 auto}
.panel-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.75rem}
.panel-toolbar h2{font-size:1.05rem;display:flex;align-items:center;gap:.4rem;flex:1;min-width:0}
.panel-toolbar h2 i{color:var(--accent)}
.pt-filters{display:flex;gap:.35rem;flex-wrap:wrap;align-items:center}
.input-dark{background:var(--bg-2);border:1px solid var(--border);color:var(--text-0);padding:.45rem .6rem;border-radius:var(--r);font-size:.82rem;outline:none;transition:border-color .2s;min-width:0}
.input-dark:focus{border-color:var(--accent)}
.input-dark::placeholder{color:var(--text-3)}
.input-lg{font-size:1.5rem;text-align:center;padding:.8rem;font-weight:700}
.btn-sm{padding:.4rem .7rem;border-radius:var(--r);border:none;font-size:.78rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.3rem;transition:all .15s var(--ease)}
.btn-sm.accent{background:var(--accent);color:#fff}
.btn-sm.accent:hover{background:var(--accent-h)}

/* Ordenes summary */
.ordenes-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:.75rem}
.os-card{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r);padding:.6rem;text-align:center}
.os-val{font-size:1.2rem;font-weight:800}
.os-label{font-size:.68rem;color:var(--text-3);margin-top:.1rem}

/* Ordenes list */
.ordenes-list{display:flex;flex-direction:column;gap:.4rem}
.orden-card{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r);padding:.6rem .75rem;cursor:pointer;transition:border-color .15s;display:grid;grid-template-columns:1fr auto auto;gap:.5rem;align-items:center}
.orden-card:active{border-color:var(--accent)}
.oc-info{min-width:0}
.oc-num{font-weight:700;font-size:.85rem}
.oc-time{font-size:.7rem;color:var(--text-3)}
.oc-estado{padding:.15rem .5rem;border-radius:12px;font-size:.65rem;font-weight:700;text-transform:uppercase;white-space:nowrap}
.est-pendiente{background:var(--yellow-bg);color:var(--yellow)}
.est-efectiva{background:var(--green-bg);color:var(--green)}
.est-anulada{background:var(--red-bg);color:var(--red)}
.oc-total{text-align:right}
.oc-total-usd{font-weight:700;color:var(--green);font-size:.9rem}
.oc-total-bs{font-size:.7rem;color:var(--yellow)}

/* ===== DASHBOARD / REPORTES ===== */
.dash-kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;margin-bottom:.75rem}
.kpi-card{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r);padding:.75rem;display:flex;align-items:center;gap:.6rem}
.kpi-icon{width:40px;height:40px;border-radius:var(--r);display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0}
.kpi-data{min-width:0}
.kpi-val{font-size:1.15rem;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi-label{font-size:.68rem;color:var(--text-3)}

.reportes-tabs{display:flex;gap:.25rem;overflow-x:auto;scrollbar-width:none;margin-bottom:.75rem}
.reportes-tabs::-webkit-scrollbar{display:none}
.rt-btn{padding:.45rem .8rem;border-radius:var(--r);border:1px solid var(--border);background:var(--bg-2);color:var(--text-2);cursor:pointer;font-size:.78rem;font-weight:600;white-space:nowrap;transition:all .15s}
.rt-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.tab-content{display:none}
.tab-content.active{display:block}

/* Report table */
.report-table-wrap{overflow-x:auto;border-radius:var(--r);border:1px solid var(--border)}
.report-table{width:100%;border-collapse:collapse;font-size:.78rem}
.report-table th{background:var(--bg-3);padding:.5rem;text-align:left;font-weight:700;color:var(--text-2);border-bottom:2px solid var(--border);white-space:nowrap;position:sticky;top:0}
.report-table td{padding:.45rem .5rem;border-bottom:1px solid var(--border);color:var(--text-0)}
.report-table tr:hover td{background:var(--bg-hover)}
.report-table .text-green{color:var(--green);font-weight:700}
.report-table .text-yellow{color:var(--yellow);font-weight:700}
.report-table .text-red{color:var(--red);font-weight:700}

/* ===== INVENTARIO ===== */
.inv-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:.75rem}
.is-card{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r);padding:.6rem;text-align:center}
.is-val{font-size:1.2rem;font-weight:800}
.is-label{font-size:.68rem;color:var(--text-3);margin-top:.1rem}

/* ===== CAJA ===== */
.caja-layout{display:grid;gap:.75rem}
.caja-status-card,.caja-config-card,.caja-history-card{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}
.cc-header{display:flex;align-items:center;gap:.5rem;padding:.75rem;font-weight:700;font-size:.9rem;border-bottom:1px solid var(--border);color:var(--text-1)}
.cc-header i{color:var(--accent);font-size:1rem}
.cc-body{padding:.75rem;display:flex;flex-direction:column;gap:.6rem}
.tasa-input-group label{display:block;font-size:.8rem;color:var(--text-2);margin-bottom:.3rem}
.tasa-hint{font-size:.72rem;color:var(--text-3);font-style:italic}

.btn-action{padding:.6rem 1.2rem;border-radius:var(--r);border:none;font-weight:700;font-size:.85rem;cursor:pointer;display:inline-flex;align-items:center;gap:.4rem;transition:all .15s var(--ease)}
.btn-action.accent{background:var(--accent);color:#fff}
.btn-action.accent:hover{background:var(--accent-h)}
.btn-action.ghost{background:var(--bg-3);color:var(--text-2);border:1px solid var(--border)}
.btn-action.ghost:hover{background:var(--bg-4);color:var(--text-0)}
.btn-action.success{background:var(--green);color:#fff}
.btn-action.danger{background:var(--red);color:#fff}

.caja-open-badge{display:flex;align-items:center;gap:.4rem;background:var(--green-bg);padding:.5rem .75rem;border-radius:var(--r);color:var(--green);font-weight:700;font-size:.85rem}
.caja-closed-badge{display:flex;align-items:center;gap:.4rem;background:var(--yellow-bg);padding:.5rem .75rem;border-radius:var(--r);color:var(--yellow);font-weight:700;font-size:.85rem}

/* ===== MODALS ===== */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.75);display:none;align-items:flex-end;justify-content:center;z-index:200;padding:0;backdrop-filter:blur(4px)}
#modalPago{z-index:250}
.modal-overlay.show{display:flex;animation:viewIn .2s var(--ease)}
.modal-box{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r-lg) var(--r-lg) 0 0;width:100%;max-height:92dvh;overflow-y:auto;display:flex;flex-direction:column}
.modal-sm{max-width:440px}
.modal-md{max-width:600px}
.mb-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--border);flex-shrink:0}
.mb-header h3{font-size:1rem;display:flex;align-items:center;gap:.4rem}
.modal-x{width:30px;height:30px;border-radius:50%;border:none;background:var(--bg-3);color:var(--text-2);cursor:pointer;font-size:1.1rem;display:flex;align-items:center;justify-content:center;transition:all .15s}
.modal-x:hover{background:var(--red);color:#fff}
.mb-body{padding:1rem;flex:1;overflow-y:auto}
.mb-footer{padding:.6rem 1rem;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:.4rem;flex-shrink:0}
.form-group{margin-bottom:.75rem}
.form-group label{display:block;font-size:.8rem;color:var(--text-2);margin-bottom:.3rem}

.quick-amounts{display:flex;gap:.35rem;margin-top:.4rem;flex-wrap:wrap}
.qa-btn{padding:.3rem .6rem;border-radius:var(--r);border:1px solid var(--border);background:var(--bg-3);color:var(--text-2);cursor:pointer;font-size:.78rem;font-weight:600;transition:all .15s}
.qa-btn:hover{border-color:var(--accent);color:var(--accent)}

/* ===== TICKET ===== */
.ticket-preview{background:#fff;color:#000;padding:1.2rem .8rem;font-family:'Courier New',monospace;font-size:.78rem;line-height:1.5;border-radius:var(--r);max-width:300px;margin:0 auto}
.ticket-preview .tk-center{text-align:center}
.ticket-preview .tk-bold{font-weight:700}
.ticket-preview .tk-divider{border-top:1px dashed #000;margin:.4rem 0}
.ticket-preview .tk-row{display:flex;justify-content:space-between}
.ticket-preview .tk-total{font-weight:700;font-size:.9rem}
.ticket-preview .tk-footer{text-align:center;font-size:.68rem;margin-top:.4rem}

/* ===== TOAST ===== */
.toast-container{position:fixed;top:calc(var(--hdr) + 8px);right:.75rem;z-index:300;display:flex;flex-direction:column;gap:.35rem;pointer-events:none}
.toast{padding:.6rem 1rem;border-radius:var(--r);font-size:.82rem;font-weight:600;color:#fff;animation:toastIn .3s var(--ease),toastOut .3s var(--ease) 2.7s;box-shadow:var(--shadow);max-width:280px;pointer-events:auto}
.toast.success{background:var(--green)}
.toast.error{background:var(--red)}
.toast.warning{background:#e65100}
.toast.info{background:var(--blue)}
@keyframes toastIn{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}
@keyframes toastOut{from{opacity:1}to{opacity:0}}

/* ===== EMPTY STATE ===== */
.empty-state{text-align:center;padding:2.5rem 1rem;color:var(--text-3)}
.empty-state i{font-size:2.5rem;margin-bottom:.6rem;opacity:.4}
.empty-state p{font-size:.9rem}

/* ===== RESPONSIVE ===== */
@media(min-width:768px){
    html{font-size:15px}
    .header-nav{display:flex}
    .ha-icon#btnHeaderMenu{display:none}
    /* icon-only nav at medium widths — text shown at 1200px+ */
    .hn-btn span:not(.wa-badge){display:none}
    .hn-btn{padding:.5rem .7rem;gap:0}
    .hn-btn i{font-size:1.5rem}
    .bottom-nav{display:none}
    .pos-main{margin-bottom:0}
    .pos-layout{flex-direction:row;height:calc(100dvh - var(--hdr))}
    .products-grid{grid-template-columns:repeat(3,1fr)}
    .pos-cart{display:flex!important;width:340px;max-height:none;border-top:none;border-left:1px solid var(--border)}
    .fab-cart{display:none!important}
    .cobro-layout{flex-direction:row;gap:1.5rem;padding:1rem}
    .cobro-left{flex:1;margin-bottom:0}
    .cobro-right{width:360px;flex-shrink:0}
    .dash-kpis{grid-template-columns:repeat(4,1fr)}
    .ordenes-summary{grid-template-columns:repeat(4,1fr)}
    .inv-stats{grid-template-columns:repeat(4,1fr)}
    .caja-layout{grid-template-columns:1fr 1fr}
    .caja-history-card{grid-column:1/-1}
    .modal-overlay{align-items:center;padding:1rem}
    .modal-box{border-radius:var(--r-lg)}
}
@media(max-width:767px){
    #userChipName,#userChipRole{display:none}
    .user-chip{padding:.25rem .4rem;gap:.25rem}

    /* Card con imagen: grid horizontal — thumbnail col 1 (72px), contenido col 2 */
    .product-card.has-img{
        display:grid;
        grid-template-columns:72px 1fr;
        grid-template-rows:auto 1fr auto;
        padding:0;
        gap:0;
        min-height:108px;
        overflow:hidden;
    }
    /* Thumbnail: columna 1, las 3 filas */
    .product-card.has-img .pc-img{
        grid-column:1;
        grid-row:1 / 4;
        width:100%;
        height:100%;
        margin:0;
        aspect-ratio:auto;
        border-radius:calc(var(--r) - 1.5px) 0 0 calc(var(--r) - 1.5px);
    }
    /* Header: ya es column desde la base — solo posición en el grid */
    .product-card.has-img .pc-header{
        grid-column:2;
        grid-row:1;
        padding:.5rem .5rem .15rem;
        gap:.15rem;
    }
    .product-card.has-img .pc-name{font-size:.78rem;line-height:1.2}
    .product-card.has-img .pc-badge{font-size:.55rem;padding:.12rem .28rem}
    /* Descripción en columna central */
    .product-card.has-img .pc-desc{
        grid-column:2;
        grid-row:2;
        font-size:.64rem;
        line-height:1.25;
        padding:0 .5rem;
        align-self:start;
        -webkit-line-clamp:2;
    }
    /* Footer pegado al fondo */
    .product-card.has-img .pc-footer{
        grid-column:2;
        grid-row:3;
        padding:.3rem .45rem .4rem;
        border-top:1px solid var(--border);
        margin-top:0;
        align-items:center;
    }
    .product-card.has-img .pc-usd{font-size:.86rem}
    .product-card.has-img .pc-bs{font-size:.61rem}
    .product-card.has-img .pc-add{width:32px;height:32px;min-width:32px;font-size:.78rem}
}
@media(min-width:1024px){
    .products-grid{grid-template-columns:repeat(4,1fr)}
    .pos-cart{width:370px}
    /* When ALL 4 columns are image cards the browser collapses the row to
       image-height only. Explicit image height removes the aspect-ratio
       ambiguity; min-height on the card guarantees the grid row stays tall
       enough to show image + header + footer regardless of row fullness. */
    .pc-img{aspect-ratio:auto;height:115px}
    .product-card.has-img{min-height:230px}
}
/* Tooltip icon-only nav (768–1199px) */
@media(min-width:768px) and (max-width:1199px){
    .hn-btn{position:relative}
    .hn-btn:hover span:not(.wa-badge){
        display:block;
        position:absolute;
        top:calc(100% + 8px);
        left:50%;
        transform:translateX(-50%);
        background:var(--bg-0);
        color:var(--text-0);
        font-size:.7rem;
        font-weight:600;
        white-space:nowrap;
        padding:.3rem .6rem;
        border-radius:7px;
        border:1px solid var(--border);
        pointer-events:none;
        z-index:200;
        box-shadow:0 4px 16px rgba(0,0,0,.35);
    }
}
@media(min-width:1200px){
    .hn-btn span{display:inline}
    .hn-btn{padding:.4rem .65rem;gap:.35rem;font-size:.77rem}
    .hn-btn i{font-size:1.1rem}
    .header-nav{gap:.15rem}
}
@media(min-width:1280px){
    .pos-cart{width:380px}
}
@media(min-width:1440px){
    .products-grid{grid-template-columns:repeat(5,1fr)}
    .pos-cart{width:400px}
}

/* ===== LOGIN SCREEN ===== */
.login-screen{position:fixed;inset:0;z-index:9999;background:var(--bg-1);display:flex;align-items:center;justify-content:center}
.login-box{background:var(--bg-2);border-radius:var(--r-lg);padding:2rem;width:90%;max-width:340px;text-align:center;box-shadow:0 8px 32px rgba(0,0,0,.5)}
.login-logo{margin-bottom:1rem}
.login-logo i{font-size:2.5rem;color:var(--accent)}
.login-logo h1{font-size:1.4rem;margin:.5rem 0 0;color:var(--text-1)}
.login-logo h1 span{color:var(--accent)}
.login-subtitle{color:var(--text-3);font-size:.85rem;margin-bottom:1.2rem}
.pin-display{display:flex;gap:.75rem;justify-content:center;margin-bottom:1.2rem}
.pin-dot{width:16px;height:16px;border-radius:50%;border:2px solid var(--text-3);transition:all .2s}
.pin-dot.filled{background:var(--accent);border-color:var(--accent)}
.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;max-width:260px;margin:0 auto}
.pp-btn{background:var(--bg-3);border:none;color:var(--text-1);font-size:1.3rem;font-weight:600;padding:.85rem;border-radius:var(--r-md);cursor:pointer;transition:all .15s;-webkit-tap-highlight-color:transparent}
.pp-btn:active{background:var(--accent);transform:scale(.95)}
.pp-clear{color:var(--red)}
.pp-enter{background:var(--accent);color:#fff}
.pp-enter:active{background:var(--accent-hover)}
.login-error{color:var(--red);font-size:.82rem;margin-top:.8rem;min-height:1.2rem}
.login-wa{display:flex;align-items:center;justify-content:center;gap:.4rem;margin-top:1rem;padding:.5rem .75rem;border-radius:var(--r);background:rgba(37,211,102,.1);color:#25d366;font-size:.78rem;text-decoration:none;transition:background .2s;border:1px solid rgba(37,211,102,.2)}
.login-wa:hover{background:rgba(37,211,102,.2)}
.login-wa i{font-size:1rem}
.login-wa b{color:var(--text-1)}

/* ===== USER CHIP ===== */
.user-chip{display:flex;align-items:center;gap:.4rem;padding:.3rem .7rem;border-radius:var(--r-full);background:var(--bg-3);font-size:.78rem;color:var(--text-2)}
.user-chip i{color:var(--accent);font-size:.9rem}
.role-badge{padding:.1rem .4rem;border-radius:var(--r-full);font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}
.role-badge.admin-role{background:var(--green-bg,rgba(46,204,113,.15));color:var(--green,#2ecc71)}
.role-badge.mesero-role{background:var(--yellow-bg,rgba(241,196,15,.15));color:var(--yellow,#f1c40f)}

/* ===== CART CUSTOMER INFO (Mesero) ===== */
.cart-customer-info{padding:.5rem .75rem;background:var(--bg-3);border-bottom:1px solid var(--border)}
.cci-row{display:grid;grid-template-columns:2fr 1fr;gap:.4rem}
.cci-row .form-group{margin:0}
.cci-row .form-group label{font-size:.7rem;color:var(--text-3);margin-bottom:.15rem;display:flex;align-items:center;gap:.25rem}
.cci-row .form-group input{padding:.35rem .5rem;font-size:.8rem}

/* ===== OBSERVACIONES PER ITEM ===== */
.ci-obs{grid-column:1/-1;margin-top:.2rem}
.input-obs{width:100%;padding:.25rem .5rem;font-size:.72rem;background:var(--bg-3);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--yellow);outline:none;transition:border-color .2s}
.input-obs:focus{border-color:var(--yellow)}
.input-obs::placeholder{color:var(--text-3);font-style:italic}
.cobro-resumen-obs{font-size:.72rem;color:var(--yellow);padding:0 0 .3rem;display:flex;align-items:center;gap:.3rem}
.cobro-resumen-obs i{font-size:.6rem}

/* ===== GENERAR ORDEN BUTTON (Mesero) ===== */
.btn-generar-orden{background:linear-gradient(135deg,#2ecc71,#27ae60) !important}
.btn-generar-orden:hover:not(:disabled){background:linear-gradient(135deg,#27ae60,#219a52) !important}

/* ===== CATEGORY MANAGEMENT ===== */
.cat-form-row{display:flex;gap:.5rem;align-items:center;margin-bottom:1rem;flex-wrap:wrap}
.cat-form-row .input-dark{flex:1;min-width:120px}
.cat-form-row .input-sm{max-width:140px;flex:0 0 auto}
.input-color{width:40px;height:36px;border:none;border-radius:var(--r-md);cursor:pointer;background:transparent;padding:0}
.cat-list{display:flex;flex-direction:column;gap:.4rem;max-height:300px;overflow-y:auto}
.cat-item{display:flex;align-items:center;gap:.6rem;padding:.5rem .75rem;background:var(--bg-3);border-radius:var(--r-md);font-size:.85rem}
.cat-item-color{width:12px;height:12px;border-radius:50%;flex-shrink:0}
.cat-item-icon{color:var(--text-3);width:20px;text-align:center}
.cat-item-name{flex:1;color:var(--text-1)}
.cat-item-actions{display:flex;gap:.3rem}
.cat-item-actions button{background:none;border:none;color:var(--text-3);cursor:pointer;padding:.2rem .35rem;border-radius:var(--r-sm);font-size:.75rem}
.cat-item-actions button:hover{background:var(--bg-2);color:var(--text-1)}
.cat-item-actions .btn-del:hover{color:var(--red)}

/* ===== ORDEN CARD EXTRAS ===== */
.oc-meta{display:flex;gap:.4rem;align-items:center;font-size:.72rem;color:var(--text-3);margin-top:.15rem}
.oc-meta i{font-size:.65rem}
.est-cancelada{background:var(--red-bg,rgba(231,76,60,.15));color:var(--red,#e74c3c)}
.est-pagada{background:var(--green-bg,rgba(46,204,113,.15));color:var(--green,#2ecc71)}

/* ===== COBRAR ORDEN MODAL ===== */
#cobrarOrdenResumen .cobro-resumen-item{display:flex;justify-content:space-between;padding:.25rem 0;font-size:.82rem;color:var(--text-2);border-bottom:1px solid var(--border)}

/* ===== INVENTORY ACTIONS ===== */
.inv-actions{display:flex;gap:.3rem;justify-content:flex-end}
.btn-sm.danger{background:var(--red);color:#fff;border-color:var(--red)}
.btn-sm.danger:hover{background:#e02040}
.btn-sm.success{background:var(--green);color:#fff;border-color:var(--green)}
.btn-sm.success:hover{background:#00b85c}

/* ===== ADMIN CARDS (Caja View) ===== */
.caja-admin-cards{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.admin-card{background:var(--bg-2);border:1.5px solid var(--border);border-radius:var(--r-lg);padding:1.2rem;cursor:pointer;transition:all .2s var(--ease);display:flex;flex-direction:column;align-items:center;text-align:center;gap:.4rem}
.admin-card:hover{border-color:var(--accent);background:var(--bg-3);transform:translateY(-2px)}
.admin-card i{font-size:1.6rem;color:var(--accent);margin-bottom:.2rem}
.admin-card span{font-weight:700;font-size:.9rem;color:var(--text-0)}
.admin-card small{font-size:.72rem;color:var(--text-3);line-height:1.3}

/* ===== USER MANAGEMENT MODAL ===== */
.user-form{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r);padding:.75rem;margin-bottom:1rem}
.uf-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.users-list{display:flex;flex-direction:column;gap:.4rem;max-height:350px;overflow-y:auto}
.user-item{display:flex;align-items:center;gap:.6rem;padding:.6rem .75rem;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r);transition:background .15s}
.user-item:hover{background:var(--bg-3)}
.user-item .ui-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:700;color:#fff;flex-shrink:0}
.ui-avatar.admin-bg{background:linear-gradient(135deg,var(--green),#27ae60)}
.ui-avatar.mesero-bg{background:linear-gradient(135deg,var(--yellow),#f39c12)}
.user-item .ui-info{flex:1;min-width:0}
.ui-info .ui-name{font-weight:600;font-size:.85rem;color:var(--text-0)}
.ui-info .ui-meta{font-size:.72rem;color:var(--text-3);display:flex;gap:.5rem;align-items:center}
.ui-meta .ui-pin{color:var(--text-2);font-family:monospace}
.ui-meta .ui-role{padding:.1rem .35rem;border-radius:3px;font-size:.62rem;font-weight:700;text-transform:uppercase}
.ui-role.r-admin{background:var(--green-bg);color:var(--green)}
.ui-role.r-mesero{background:var(--yellow-bg);color:var(--yellow)}
.ui-role.r-cocina{background:rgba(99,102,241,.15);color:#818cf8}
.ui-role.r-cajera{background:rgba(14,165,233,.15);color:#38bdf8}
.user-item .ui-inactive{opacity:.5}
.user-item .ui-badge-inactive{background:var(--red-bg);color:var(--red);font-size:.6rem;padding:.1rem .3rem;border-radius:3px;font-weight:700}
.user-item .ui-actions{display:flex;gap:.3rem}
.ui-actions button{background:none;border:none;color:var(--text-3);cursor:pointer;padding:.3rem .4rem;border-radius:var(--r-sm);font-size:.8rem;transition:all .15s}
.ui-actions button:hover{background:var(--bg-4);color:var(--text-1)}
.ui-actions .btn-del:hover{color:var(--red)}

/* ===== CONFIG FORM ===== */
.config-form .form-group{margin-bottom:.75rem}
.config-form label{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--text-2);margin-bottom:.3rem}
.config-form label i{color:var(--accent);font-size:.75rem}

/* ===== ADMIN-ONLY / MESERO-ONLY / CAJERA VISIBILITY ===== */
body.role-mesero .admin-only{display:none !important}
body.role-admin .mesero-only{display:none !important}
body.role-cajera .admin-only{display:none}
body.role-cajera .cajera-tasa{display:block !important}
body.role-mesero .caja-ctrl{display:none !important}

/* ===== PRINT ===== */
@media print{
    body *{visibility:hidden}
    .ticket-preview,.ticket-preview *{visibility:visible}
    .ticket-preview{position:absolute;top:0;left:0;width:80mm;padding:5mm;font-size:10px;box-shadow:none;border:none}
}

/* ============================================================
   FEATURE 2: BANNER STOCK CRÍTICO
   ============================================================ */
.stock-alert-banner{
    position:fixed;top:var(--hdr);left:0;width:100%;z-index:90;
    background:linear-gradient(90deg,#7c2d12,#b91c1c);
    border-bottom:2px solid var(--red);
    animation:bannerSlide .4s var(--ease);
}
.stock-alert-banner.has-out{
    animation:bannerSlide .4s var(--ease), bannerShake 0s 0s;
}
@keyframes bannerSlide{from{transform:translateY(-100%)}to{transform:translateY(0)}}

.sab-inner{
    display:flex;align-items:center;justify-content:space-between;
    padding:.5rem .85rem;gap:.75rem;flex-wrap:wrap;
}
.sab-left{display:flex;align-items:center;gap:.5rem;font-size:.82rem;font-weight:700;color:#fff;flex:1;min-width:0}
.sab-pulse{
    width:10px;height:10px;border-radius:50%;background:var(--yellow);flex-shrink:0;
    animation:sabPulse .8s infinite alternate;
}
@keyframes sabPulse{from{opacity:1;transform:scale(1)}to{opacity:.3;transform:scale(.7)}}
.sab-left i{color:var(--yellow);font-size:1rem;flex-shrink:0}
.sab-actions{display:flex;align-items:center;gap:.4rem;flex-shrink:0}
.sab-btn{
    padding:.35rem .75rem;border-radius:var(--r);border:none;
    background:var(--yellow);color:#000;font-size:.78rem;font-weight:800;
    cursor:pointer;display:flex;align-items:center;gap:.3rem;transition:all .15s;
}
.sab-btn:hover{background:#fff}
.sab-close{
    width:28px;height:28px;border-radius:50%;border:none;
    background:rgba(255,255,255,.15);color:#fff;cursor:pointer;
    font-size:.85rem;display:flex;align-items:center;justify-content:center;
    transition:background .15s;
}
.sab-close:hover{background:rgba(255,255,255,.3)}

/* Desplaza el main cuando el banner está visible */
body:has(.stock-alert-banner:not([style*="display:none"])) .pos-main{
    margin-top:calc(var(--hdr) + 40px);
}
/* Ajuste para navegadores sin :has */
.pos-main.banner-offset{margin-top:calc(var(--hdr) + 40px)}

/* Modal restock */
.restock-list{display:flex;flex-direction:column;gap:.5rem}
.restock-item{
    display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:.5rem;
    background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r);
    padding:.55rem .75rem;
}
.ri-info{display:flex;align-items:center;gap:.5rem;min-width:0}
.ri-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.ri-name{font-weight:700;font-size:.85rem;color:var(--text-0)}
.ri-cat{font-size:.7rem;color:var(--text-3)}
.ri-stock-now{display:flex;flex-direction:column;align-items:flex-end;gap:.2rem}
.ri-min{font-size:.68rem;color:var(--text-3)}
.ri-qty{width:90px;text-align:center;font-size:.9rem;font-weight:700}
@media(max-width:480px){
    .restock-item{grid-template-columns:1fr;gap:.35rem}
    .ri-stock-now{flex-direction:row;align-items:center}
    .ri-qty{width:100%}
}

/* ============================================================
   FEATURE 3: META DIARIA
   ============================================================ */
.meta-widget{
    background:var(--bg-2);border:1px solid var(--border);
    border-radius:var(--r-lg);overflow:hidden;margin-bottom:.75rem;
}
.mw-header{
    display:flex;align-items:center;justify-content:space-between;
    padding:.75rem 1rem;border-bottom:1px solid var(--border);
    flex-wrap:wrap;gap:.5rem;
}
.mw-title{
    display:flex;align-items:center;gap:.4rem;
    font-weight:800;font-size:.95rem;color:var(--text-0);
}
.mw-title i{color:var(--accent)}
.mw-set{display:flex;align-items:center;gap:.4rem}
.mw-body{padding:.85rem 1rem}

/* Barra de progreso */
.mw-progress-wrap{margin-bottom:.85rem}
.mw-progress-bar{
    height:14px;background:var(--bg-3);border-radius:7px;overflow:hidden;
    border:1px solid var(--border);
}
.mw-progress-fill{
    height:100%;border-radius:7px;
    background:linear-gradient(90deg,var(--accent),#ff9966);
    transition:width .8s cubic-bezier(.4,0,.2,1);
    position:relative;overflow:hidden;
}
.mw-progress-fill::after{
    content:'';position:absolute;top:0;left:-100%;width:60%;height:100%;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);
    animation:shimmer 2s infinite;
}
@keyframes shimmer{to{left:200%}}
.mw-progress-labels{
    display:flex;justify-content:space-between;margin-top:.4rem;
    font-size:.82rem;font-weight:700;
}
#metaPct{color:var(--accent);font-size:1rem;font-weight:800}
#metaLabel{color:var(--text-2)}

/* KPIs de meta */
.mw-kpis{
    display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;
}
@media(min-width:600px){.mw-kpis{grid-template-columns:repeat(4,1fr)}}
.mw-kpi{
    background:var(--bg-3);border:1px solid var(--border);border-radius:var(--r);
    padding:.55rem .65rem;display:flex;align-items:center;gap:.5rem;
}
.mw-kpi i{font-size:1.1rem;flex-shrink:0}
.mw-kpi b{display:block;font-size:.9rem;font-weight:800;color:var(--text-0);line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mw-kpi small{display:block;font-size:.65rem;color:var(--text-3);margin-top:.1rem}
.mw-kpi-star{grid-column:1/-1;background:rgba(255,190,11,.07);border-color:rgba(255,190,11,.2)}

/* ============================================================
   ROL COCINA — badge en role chip
   ============================================================ */
.role-badge.cocina-role{background:rgba(99,102,241,.15);color:#818cf8}
.role-badge.cajera-role{background:rgba(14,165,233,.15);color:#38bdf8}

/* ============================================================
   NOTIFICACIÓN PLATO LISTO (mesero)
   ============================================================ */
.plato-listo-notif{
    position:fixed;
    bottom:calc(var(--nav) + 10px);
    left:.75rem;right:.75rem;
    z-index:150;
    background:linear-gradient(135deg,#064e3b,#065f46);
    border:2px solid var(--green);
    border-radius:var(--r-lg);
    display:flex;align-items:center;gap:.65rem;
    padding:.7rem .85rem;
    box-shadow:0 8px 32px rgba(0,210,106,.35);
}
.plato-listo-notif.pln-show{
    animation:plnSlideUp .35s cubic-bezier(.34,1.56,.64,1);
}
.plato-listo-notif.pln-hide{
    animation:plnSlideDown .3s ease forwards;
}
@keyframes plnSlideUp{
    from{transform:translateY(120%);opacity:0}
    to{transform:translateY(0);opacity:1}
}
@keyframes plnSlideDown{
    from{transform:translateY(0);opacity:1}
    to{transform:translateY(120%);opacity:0}
}
.pln-icon{
    width:40px;height:40px;border-radius:50%;flex-shrink:0;
    background:rgba(0,210,106,.2);
    display:flex;align-items:center;justify-content:center;
    font-size:1.2rem;color:var(--green);
    animation:plnRing .6s ease infinite alternate;
}
@keyframes plnRing{from{transform:rotate(-15deg)}to{transform:rotate(15deg)}}
.pln-text{flex:1;min-width:0}
.pln-text strong{display:block;font-size:.9rem;font-weight:800;color:#fff}
.pln-text span{display:block;font-size:.75rem;color:rgba(255,255,255,.7);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pln-ver{
    padding:.45rem .85rem;border-radius:var(--r);border:none;
    background:var(--green);color:#fff;font-size:.78rem;font-weight:800;
    cursor:pointer;white-space:nowrap;flex-shrink:0;
    transition:all .15s;
}
.pln-ver:hover{background:#00b85c}
.pln-close{
    width:28px;height:28px;border-radius:50%;border:none;
    background:rgba(255,255,255,.12);color:#fff;cursor:pointer;
    font-size:.8rem;display:flex;align-items:center;justify-content:center;
    flex-shrink:0;transition:background .15s;
}
.pln-close:hover{background:rgba(255,255,255,.25)}

/* Badge "listo" en tab Ventas del bottom nav */
.bn-item.has-ready{color:var(--green) !important}
.bn-item.has-ready i{animation:tabPulse .8s infinite alternate}
.hn-btn.has-ready{color:var(--green) !important;background:var(--green-bg) !important}
@keyframes tabPulse{from{transform:scale(1)}to{transform:scale(1.25)}}

/* Desktop: notificación anclada al panel derecho */
@media(min-width:768px){
    .plato-listo-notif{left:auto;right:1rem;bottom:1rem;max-width:380px}
}

/* ===== LICENCIA ===== */
.lic-section{margin-top:.5rem}
.lic-badge-ok{display:inline-flex;align-items:center;gap:.4rem;background:rgba(0,210,106,.12);color:var(--green);padding:.3rem .75rem;border-radius:20px;font-size:.78rem;font-weight:700;margin-bottom:.75rem}
.lic-badge-demo{display:inline-flex;align-items:center;gap:.4rem;background:rgba(255,190,11,.1);color:var(--yellow);padding:.3rem .75rem;border-radius:20px;font-size:.78rem;font-weight:700;margin-bottom:.6rem}
.lic-status-ok{padding:.75rem .85rem;background:var(--bg-3);border-radius:var(--r);border:1px solid var(--border)}
.lic-info-row{font-size:.8rem;color:var(--text-2);margin:.2rem 0;display:flex;align-items:center;gap:.4rem}
.lic-info-row code{color:var(--text-1);background:var(--bg-4);padding:.1rem .3rem;border-radius:3px;font-size:.72rem}
.lic-dias{display:flex;align-items:baseline;gap:.3rem;margin:.6rem 0 .2rem;font-weight:700}
.lic-demo-msg{font-size:.82rem;color:var(--text-2);margin-bottom:.85rem;line-height:1.5}
.lic-form{display:flex;flex-direction:column;gap:.4rem;padding:.75rem .85rem;background:var(--bg-3);border-radius:var(--r);border:1px solid var(--border)}
.lic-form .form-group{margin:0}
.lic-renew-wa{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:.55rem 1rem;border-radius:var(--r);background:rgba(37,211,102,.12);color:#25d366;font-size:.82rem;font-weight:700;text-decoration:none;border:1px solid rgba(37,211,102,.2);transition:background .2s;margin-top:.5rem}
.lic-renew-wa:hover{background:rgba(37,211,102,.22)}
/* Overlay expirada */
#licExpiradaOverlay{position:fixed;inset:0;z-index:9999;background:var(--bg-0);display:flex;align-items:center;justify-content:center;padding:1rem;overflow-y:auto}
.lic-expired-box{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-lg);padding:2rem 1.5rem;width:100%;max-width:380px;text-align:center}
.lic-expired-divider{font-size:.8rem;color:var(--text-3);margin:1.2rem 0 .75rem;position:relative;display:flex;align-items:center;gap:.5rem}
.lic-expired-divider::before,.lic-expired-divider::after{content:'';flex:1;height:1px;background:var(--border)}

/* ===== PAGINACIÓN INVENTARIO ===== */
.inv-pager{display:flex;align-items:center;justify-content:space-between;padding:.5rem .25rem;margin-top:.4rem;gap:.5rem;flex-wrap:wrap}
.inv-pager .btn-sm{min-width:90px}
.inv-pager-info{font-size:.78rem;color:var(--text-3);text-align:center;flex:1}
.inv-pager .btn-sm:disabled{opacity:.35;cursor:not-allowed}
/* Badges de tipo de artículo en inventario */
.inv-tipo-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:4px;font-size:.65rem;vertical-align:middle;margin-right:2px}
.inv-tipo-badge.elaborado{background:rgba(139,92,246,.18);color:#a78bfa}
.inv-tipo-badge.terminado{background:rgba(100,116,139,.15);color:#94a3b8}

/* ===== MÓDULO COMPRAS + KARDEX ===== */
.modal-lg{max-width:900px;width:98vw}
.modal-md{max-width:480px;width:98vw}

.compra-items-header,.compra-item-row{display:grid;grid-template-columns:1fr 90px 110px 80px 36px;gap:.35rem;align-items:center;padding:.3rem .1rem}
.compra-items-header{font-size:.72rem;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--border);margin-bottom:.25rem}
.compra-item-row{border-bottom:1px solid rgba(255,255,255,.04);padding:.35rem .1rem}
.compra-item-row input,.compra-item-row select{font-size:.82rem;padding:.3rem .45rem;background:var(--bg-3);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-0);width:100%}
/* Tipo toggle dentro de la columna de ítem */
.ci-tipo-wrap{display:flex;flex-direction:column;gap:.25rem}
.ci-tipo-btn{display:inline-flex;align-items:center;gap:.3rem;padding:.18rem .5rem;border-radius:var(--r-sm);border:1.5px solid var(--border);font-size:.68rem;font-weight:700;cursor:pointer;background:var(--bg-3);color:var(--text-2);transition:all .15s;width:fit-content}
.ci-tipo-btn.producto{border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}
.ci-tipo-btn.insumo{border-color:var(--yellow);color:var(--yellow);background:var(--yellow-bg)}
.compra-item-row .btn-rm{width:30px;height:30px;border:none;border-radius:var(--r-sm);background:var(--red-bg);color:var(--red);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.compra-total-row{display:flex;justify-content:flex-end;align-items:center;gap:.75rem;padding:.6rem .25rem 0;font-size:.92rem;color:var(--text-2);border-top:1px solid var(--border);margin-top:.5rem}
.compra-total-row strong{font-size:1.05rem;color:var(--green)}

.compra-card{display:flex;align-items:center;gap:.6rem;padding:.65rem .8rem;background:var(--bg-2);border-radius:var(--r);border:1px solid var(--border);margin-bottom:.4rem;cursor:pointer;transition:background .15s}
.compra-card:hover{background:var(--bg-3)}
.cc-num{font-weight:700;font-size:.88rem;color:var(--text-0);min-width:130px}
.cc-prov{font-size:.8rem;color:var(--text-2);flex:1}
.cc-total{font-size:.88rem;font-weight:700;color:var(--green);min-width:70px;text-align:right}
.cc-actions{display:flex;gap:.35rem;margin-left:.5rem}
.cc-actions button{font-size:.72rem;padding:.2rem .45rem}

.kdx-tipo{font-size:.72rem;padding:.15rem .45rem;border-radius:20px;font-weight:700;white-space:nowrap}
.kdx-entrada{background:var(--green-bg);color:var(--green)}
.kdx-salida{background:var(--red-bg);color:var(--red)}
.kdx-ajuste{background:var(--yellow-bg);color:var(--yellow)}

.est-borrador{background:rgba(90,90,160,.15);color:#a0a0d8}
.est-recibida{background:var(--green-bg);color:var(--green)}
.est-parcial{background:var(--yellow-bg);color:var(--yellow)}

@media(max-width:600px){
    .compra-items-header{display:none}
    .compra-item-row{grid-template-columns:1fr 1fr 36px;row-gap:.3rem}
    .ci-tipo-wrap{grid-column:1/-1}
    .cc-num{min-width:auto;font-size:.82rem}
    .modal-lg .mb-body{padding:.6rem}
}

/* ===== PROPINA ROW ===== */
.propina-row{display:flex;align-items:center;gap:.75rem;padding:.45rem .75rem;background:rgba(255,193,7,.06);border:1px solid rgba(255,193,7,.18);border-radius:.45rem;margin:.35rem 0}
.propina-row label{flex:1;color:var(--yellow);font-size:.83rem;font-weight:600;white-space:nowrap;cursor:default}
.propina-row input{width:90px;text-align:right}

/* ===== TURNO RESUMEN MODAL ===== */
.turno-stat-grid{display:flex;flex-direction:column;gap:.35rem}
.ts-row{display:flex;justify-content:space-between;align-items:center;padding:.35rem .6rem;background:var(--bg-2);border-radius:.35rem;font-size:.88rem}
.ts-row span{color:var(--text-2)}
.ts-row strong{color:var(--text-1)}
.ts-row.accent{background:rgba(99,102,241,.1);border:1px solid rgba(99,102,241,.2)}
.ts-row.accent strong{color:var(--accent);font-size:.95rem}
.ts-divider{height:1px;background:var(--border);margin:.4rem 0}
.ts-subtitle{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);margin:.15rem .1rem .2rem}

/* ===== CUADRE X & Z REPORT ===== */
.xr-header{text-align:center;margin-bottom:.9rem}
.xr-badge-x{display:inline-block;background:var(--accent);color:#fff;font-size:.78rem;font-weight:800;letter-spacing:.07em;padding:.28rem .9rem;border-radius:2rem;margin-bottom:.3rem}
.xr-meta{font-size:.7rem;color:var(--text-3);margin-top:.2rem}
.xr-alert{background:rgba(255,186,8,.12);border:1px solid var(--yellow);color:var(--yellow);padding:.45rem .75rem;border-radius:.4rem;font-size:.8rem;display:flex;gap:.5rem;align-items:center;margin-bottom:.75rem}
.xr-section{margin-bottom:1.1rem}
.xr-title{font-size:.76rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);margin-bottom:.4rem;display:flex;align-items:center;gap:.4rem}
.xr-kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.4rem;margin-bottom:.3rem}
.xr-kpi{background:var(--bg-2);border-radius:.4rem;padding:.5rem .65rem;display:flex;flex-direction:column;gap:.15rem}
.xr-kpi span{font-size:.67rem;color:var(--text-3);text-transform:uppercase;letter-spacing:.03em}
.xr-kpi strong{font-size:.92rem;color:var(--text-1)}
.xr-kpi.green strong{color:var(--green)}
.xr-kpi.yellow strong{color:var(--yellow)}
.xr-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:.4rem}
.xr-table{width:100%;border-collapse:collapse;font-size:.78rem}
.xr-table thead th{background:var(--bg-3);color:var(--text-3);font-size:.68rem;text-transform:uppercase;letter-spacing:.03em;padding:.35rem .5rem;text-align:left;white-space:nowrap}
.xr-table tbody tr{border-bottom:1px solid var(--border)}
.xr-table tbody td{padding:.35rem .5rem;color:var(--text-1)}
.xr-table .td-neto{font-weight:700;color:var(--green)}
.xr-table .td-desc{color:var(--text-3);font-size:.72rem}
.xr-table .td-c{text-align:center}
.xr-table .td-r{text-align:right}
.xr-table .td-empty{text-align:center;color:var(--text-3);padding:.6rem;font-size:.76rem}

/* ===== PRE-CIERRE ===== */
.pc-info-bar{display:flex;gap:.65rem;align-items:flex-start;background:rgba(255,186,8,.1);border:1px solid rgba(255,186,8,.35);border-radius:.45rem;padding:.55rem .75rem;font-size:.79rem;color:var(--text-2);line-height:1.45;margin-bottom:.75rem}
.pc-table{font-size:.79rem}
.pc-table td{vertical-align:middle;padding:.35rem .4rem}
.pc-sub{font-size:.67rem;color:var(--text-3);margin-top:.1rem}
.pc-hist{margin-top:.25rem;display:flex;flex-direction:column;gap:.1rem}
.pc-hist-item{font-size:.65rem;color:var(--yellow);display:flex;align-items:center;gap:.25rem}
.pc-badge{display:inline-block;font-size:.7rem;font-weight:700;padding:.15rem .5rem;border-radius:1rem;white-space:nowrap}
.pc-efectivo_bs{background:rgba(34,197,94,.15);color:#4ade80}
.pc-efectivo_usd{background:rgba(34,197,94,.25);color:#22c55e}
.pc-pago_movil{background:rgba(99,102,241,.15);color:var(--accent)}
.pc-tarjeta{background:rgba(14,165,233,.15);color:#38bdf8}
.pc-zelle{background:rgba(0,180,216,.15);color:#00b4d8}
.pc-cashea{background:rgba(249,115,22,.15);color:#f97316}
.input-xs{height:28px;padding:.2rem .45rem;font-size:.75rem;min-width:80px;max-width:130px}

/* ===== TURNOS CARD EN CAJA ===== */
.caja-turnos-card{margin-top:.5rem}
.caja-turnos-card .cc-body{padding:.5rem 0 0}

/* ===== REPORTE VENDEDOR ===== */
.caja-vendedor-card{margin-top:.5rem}
.caja-vendedor-card .cc-body{padding:.5rem 0 0}
.kpi-mini{padding:.4rem .6rem;background:var(--bg-2);border-radius:.35rem;display:flex;flex-direction:column;gap:.15rem}
.kpi-mini span{font-size:.7rem;color:var(--text-3);text-transform:uppercase;letter-spacing:.03em}
.kpi-mini strong{font-size:.92rem;color:var(--text-1)}
.kpi-mini.green strong{color:var(--green)}
.kpi-mini.red strong{color:var(--red)}
.kpi-mini.accent strong{color:var(--accent)}
.kpi-mini.yellow strong{color:var(--yellow)}

/* ===== CLIENTE SEARCH WIDGET ===== */
.csf-wrap{position:relative}
.csf-input-row{display:flex;gap:.35rem;align-items:center}
.csf-input-row .csf-input{flex:1;min-width:0}
.csf-add-btn{background:var(--bg-3);border:1px solid var(--border);color:var(--text-2);border-radius:.4rem;padding:.4rem .55rem;cursor:pointer;font-size:.85rem;flex-shrink:0;transition:background .15s}
.csf-add-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.csf-dropdown{position:absolute;left:0;right:0;top:calc(100% + 2px);background:var(--bg-2);border:1px solid var(--border);border-radius:.45rem;z-index:200;box-shadow:0 8px 24px rgba(0,0,0,.5);max-height:220px;overflow-y:auto}
.csf-item{padding:.55rem .75rem;cursor:pointer;display:flex;flex-direction:column;gap:.1rem;border-bottom:1px solid rgba(255,255,255,.04)}
.csf-item:last-child{border-bottom:none}
.csf-item:hover{background:var(--bg-3)}
.csf-item strong{font-size:.85rem;color:var(--text-1)}
.csf-item small{font-size:.75rem;color:var(--text-3);margin-right:.5rem}
.csf-selected{display:flex;align-items:center;gap:.4rem;background:rgba(99,230,190,.08);border:1px solid rgba(99,230,190,.3);border-radius:.35rem;padding:.35rem .6rem;margin-top:.3rem;font-size:.82rem;color:var(--text-1)}
.csf-selected span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.csf-clear{background:none;border:none;color:var(--text-3);cursor:pointer;font-size:1rem;padding:0 .2rem;line-height:1}
.csf-clear:hover{color:var(--red)}
.cobro-cliente-row{margin-bottom:.75rem;padding:.6rem .65rem;background:var(--bg-2);border-radius:.45rem;border:1px solid var(--border)}

/* ===== VISTA CLIENTES ===== */
.clientes-table{width:100%;border-collapse:collapse;font-size:.83rem}
.clientes-table th{text-align:left;padding:.5rem .6rem;color:var(--text-3);border-bottom:1px solid var(--border);font-weight:500;white-space:nowrap}
.clientes-table td{padding:.5rem .6rem;border-bottom:1px solid rgba(255,255,255,.04);vertical-align:middle}
.clientes-table tr:hover td{background:var(--bg-2)}
.clientes-table .tc-actions{display:flex;gap:.3rem;justify-content:flex-end}
.btn-hist{background:rgba(99,102,241,.15);border:1px solid rgba(99,102,241,.3);color:#a5b4fc;border-radius:.35rem;padding:.25rem .5rem;font-size:.75rem;cursor:pointer}
.btn-hist:hover{background:rgba(99,102,241,.35)}
.btn-edit-c{background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.3);color:var(--yellow);border-radius:.35rem;padding:.25rem .5rem;font-size:.75rem;cursor:pointer}
.btn-edit-c:hover{background:rgba(245,158,11,.25)}

/* Historial modal */
.hist-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:.4rem .75rem;margin-bottom:.85rem;padding:.65rem;background:var(--bg-2);border-radius:.4rem}
.hist-info-grid .hig-row{display:flex;flex-direction:column;gap:.05rem}
.hist-info-grid .hig-row span{font-size:.72rem;color:var(--text-3)}
.hist-info-grid .hig-row strong{font-size:.86rem;color:var(--text-1)}
.hist-orden-row{display:flex;align-items:center;gap:.5rem;padding:.45rem .5rem;border-bottom:1px solid rgba(255,255,255,.05);font-size:.82rem}
.hist-orden-row:last-child{border-bottom:none}
.hor-num{color:var(--text-3);font-size:.75rem;min-width:90px}
.hor-date{color:var(--text-3);font-size:.75rem;flex:1}
.hor-amt{font-weight:700;color:var(--accent);min-width:60px;text-align:right}
.hor-estado{font-size:.72rem;padding:.15rem .4rem;border-radius:.25rem;white-space:nowrap}
.hor-estado.efectiva{background:rgba(52,211,153,.12);color:var(--green)}
.hor-estado.pendiente{background:rgba(245,158,11,.12);color:var(--yellow)}
.hor-estado.cancelada,.hor-estado.anulada{background:rgba(239,68,68,.1);color:var(--red)}

/* ===== TOGGLE SWITCH ===== */
.toggle-switch{position:relative;display:inline-block;width:42px;height:24px;flex-shrink:0}
.toggle-switch input{opacity:0;width:0;height:0;position:absolute}
.ts-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.1);border-radius:24px;transition:.25s;border:1px solid rgba(255,255,255,.08)}
.ts-slider::before{content:'';position:absolute;height:18px;width:18px;left:3px;bottom:2px;background:var(--text-3);border-radius:50%;transition:.25s}
.toggle-switch input:checked + .ts-slider{background:var(--accent);border-color:var(--accent)}
.toggle-switch input:checked + .ts-slider::before{transform:translateX(18px);background:#fff}
.toggle-switch-wrap{display:flex;align-items:center;gap:.45rem}

/* ===== VISTA MESAS ===== */
.mesas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.9rem;padding:.5rem 0}
.mesa-card{position:relative;border-radius:.65rem;border:2px solid;padding:.9rem .75rem .75rem;cursor:pointer;transition:transform .15s,box-shadow .15s;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.3rem;min-height:108px;justify-content:center;user-select:none}
.mesa-card:hover{transform:translateY(-3px);box-shadow:0 6px 20px rgba(0,0,0,.35)}
.mesa-card.mesa-libre{border-color:rgba(52,211,153,.35);background:rgba(52,211,153,.06)}
.mesa-card.mesa-ocupada{border-color:rgba(245,158,11,.45);background:rgba(245,158,11,.08)}
.mesa-card.mesa-redonda{border-radius:50%}
.mesa-icon{font-size:1.5rem;opacity:.28;margin-bottom:.1rem}
.mesa-libre .mesa-icon{color:var(--green)}
.mesa-ocupada .mesa-icon{color:var(--yellow)}
.mc-nombre{font-size:.97rem;font-weight:700;color:var(--text-1)}
.mc-cap{font-size:.7rem;color:var(--text-3)}
.mc-status{font-size:.72rem;font-weight:600}
.mesa-libre .mc-status{color:var(--green)}
.mesa-ocupada .mc-status{color:var(--yellow)}
.mc-orden{font-size:.68rem;color:var(--text-3);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ===== CAMBIAR MESA MODAL ===== */
.cm-info-bar{display:flex;gap:.6rem;align-items:flex-start;background:rgba(14,165,233,.1);border:1px solid rgba(56,189,248,.3);border-radius:.45rem;padding:.55rem .75rem;font-size:.8rem;color:var(--text-2);line-height:1.4;margin-bottom:.75rem}
.cm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.75rem;padding:.25rem 0}
.cm-selectable{cursor:pointer}
.cm-selectable:hover{transform:translateY(-4px) scale(1.03);box-shadow:0 8px 24px rgba(14,165,233,.25);border-color:rgba(56,189,248,.7) !important}

/* Mesas settings card in Ajustes */
.mesa-cfg-list{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.25rem}
.mesa-cfg-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .55rem;background:var(--bg-2);border-radius:.4rem;font-size:.83rem}
.mci-nombre{flex:1;font-weight:600;color:var(--text-1)}
.mci-info{color:var(--text-3);font-size:.74rem}
.btn-edit-m{background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.3);color:var(--yellow);border-radius:.35rem;padding:.22rem .45rem;font-size:.74rem;cursor:pointer}
.btn-edit-m:hover{background:rgba(245,158,11,.25)}
.btn-del-m{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);color:var(--red);border-radius:.35rem;padding:.22rem .45rem;font-size:.74rem;cursor:pointer}
.btn-del-m:hover{background:rgba(239,68,68,.25)}

/* ===== PANEL DE VUELTO ===== */
.vuelto-panel{background:var(--bg-3);border:1px solid rgba(245,158,11,.5);border-radius:8px;padding:.75rem;margin:.5rem 0;animation:fadeIn .2s ease}
.vp-header{display:flex;align-items:center;gap:.5rem;color:var(--yellow);font-weight:600;margin-bottom:.5rem}
.vp-total{font-size:.88rem;color:var(--yellow)}
.vp-quick{display:flex;gap:.5rem;margin-bottom:.5rem}
.vp-btn{flex:1;background:var(--bg-2);border:1px solid var(--border);color:var(--text-2);border-radius:6px;padding:.3rem .4rem;font-size:.76rem;cursor:pointer;transition:background .15s,color .15s;display:flex;align-items:center;justify-content:center;gap:.3rem}
.vp-btn:hover{background:rgba(245,158,11,.2);color:var(--yellow);border-color:rgba(245,158,11,.5)}
.vp-inputs{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.4rem}
.vp-field label{display:block;font-size:.72rem;color:var(--text-3);margin-bottom:.2rem}
.vp-field input{width:100%}
.vp-validation{font-size:.77rem;text-align:center;min-height:1.4rem;padding:.1rem 0}
.vp-ok{color:var(--green)}
.vp-warn{color:var(--yellow)}
.vp-over{color:var(--red)}
.tk-vuelto-line{color:var(--red);font-size:.78rem}

/* ===== MODAL CONFIRMAR CIERRE DE CAJA ===== */
.ccm-detail{background:var(--bg-2);border:1px solid var(--border);border-radius:8px;overflow:hidden;margin-bottom:.75rem}
.ccm-row{display:flex;justify-content:space-between;align-items:center;padding:.45rem .7rem;border-bottom:1px solid var(--border);font-size:.82rem;gap:.5rem}
.ccm-row:last-child{border-bottom:none}
.ccm-row span{color:var(--text-3);font-size:.78rem;display:flex;align-items:center;gap:.35rem;flex-shrink:0}
.ccm-row strong{color:var(--text-1);text-align:right;word-break:break-word}
.ccm-warning{display:flex;align-items:flex-start;gap:.55rem;background:rgba(239,68,68,.08);border:1px solid rgba(239,68,68,.25);border-radius:8px;padding:.6rem .8rem;font-size:.78rem;color:var(--text-2);line-height:1.5}
.ccm-warning i{color:var(--red);margin-top:.1rem;flex-shrink:0}

/* ===== REPORTE X / CUADRE DE CAJA ===== */
.rx-actions{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap;padding:.75rem 0 1rem}
.rx-ticket-wrap{display:flex;justify-content:center;padding:.5rem 0 1.5rem}
.rx-ticket{background:var(--bg-1);border:1px solid var(--border);border-radius:10px;padding:1rem 1.25rem;width:100%;max-width:360px;font-size:.82rem;color:var(--text-1);box-shadow:0 4px 24px rgba(0,0,0,.3)}

/* ===== WHATSAPP PEDIDOS EXTERNOS ===== */
.wa-badge{background:var(--red);color:#fff;border-radius:50%;min-width:18px;height:18px;font-size:.62rem;font-weight:800;display:inline-flex;align-items:center;justify-content:center;margin-left:.3rem;padding:0 .25rem}
.wa-info-bar{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;padding:.75rem;background:var(--bg-1);border-radius:var(--r);margin-bottom:1rem;border:1px solid var(--border)}
.wa-info-label{font-size:.72rem;color:var(--text-3);font-weight:600;white-space:nowrap}
.wa-pedido-link{font-size:.78rem;color:var(--accent);font-weight:600;word-break:break-all;flex:1}
.wa-link-section{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0}
.wa-orders-list{display:flex;flex-direction:column;gap:.75rem}
.wa-order-card{background:var(--bg-1);border:1px solid var(--border);border-radius:var(--r);padding:.9rem;transition:border-color .15s}
.wa-order-card.is-new{border-left:3px solid #25D366}
.wa-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.5rem}
.wa-card-header strong{font-size:.9rem;color:var(--text-0)}
.wa-tel-link{display:inline-flex;align-items:center;gap:.2rem;font-size:.75rem;color:#25D366;margin-left:.5rem;text-decoration:none}
.wa-tel-link:hover{text-decoration:underline}
.wa-card-items{font-size:.78rem;color:var(--text-2);margin-bottom:.4rem;line-height:1.5}
.wa-card-direccion{font-size:.76rem;color:var(--text-2);margin-bottom:.5rem;display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}
.wa-card-direccion .fas{color:#f59e0b}
.wa-map-link{font-size:.72rem;color:var(--accent);text-decoration:none;display:inline-flex;align-items:center;gap:.2rem}
.wa-map-link:hover{text-decoration:underline}
.wa-card-footer{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}
.wa-total{font-size:.95rem;font-weight:800;color:var(--accent)}
.wa-notas{font-size:.75rem;color:var(--text-2);flex:1;font-style:italic}
.wa-actions{display:flex;gap:.4rem;flex-wrap:wrap;margin-left:auto}
.wa-status-badge{padding:.18rem .55rem;border-radius:999px;font-size:.7rem;font-weight:700}
.wa-status-new{background:rgba(37,211,102,.15);color:#25D366}
.wa-status-seen{background:rgba(255,190,11,.12);color:var(--yellow)}
.wa-status-done{background:rgba(99,102,241,.15);color:#818cf8}
.wa-status-cancel{background:var(--bg-3);color:var(--text-3)}
.btn-xs.accent{background:var(--accent);color:#fff;border-color:var(--accent)}
.btn-xs.accent:hover{background:var(--accent-h)}

/* ===== ARTÍCULOS SUB-TABS ===== */
.inv-sub-tab{display:none}
.inv-sub-tab.active{display:block}

/* ===== SHARED TABLE + BUTTON HELPERS ===== */
.table-wrap{overflow-x:auto;border-radius:var(--r);border:1px solid var(--border)}
.data-table{width:100%;border-collapse:collapse;font-size:.78rem}
.data-table th{background:var(--bg-3);padding:.5rem;text-align:left;font-weight:700;color:var(--text-2);border-bottom:2px solid var(--border);white-space:nowrap;position:sticky;top:0}
.data-table td{padding:.45rem .5rem;border-bottom:1px solid var(--border);color:var(--text-0)}
.data-table tr:hover td{background:var(--bg-hover)}
.td-actions{white-space:nowrap;text-align:right}
.btn-xs{padding:.25rem .5rem;border-radius:6px;border:1px solid var(--border);background:var(--bg-3);color:var(--text-1);font-size:.72rem;cursor:pointer;transition:all .12s var(--ease);display:inline-flex;align-items:center;gap:.25rem}
.btn-xs:hover{background:var(--bg-4);color:var(--text-0)}
.btn-xs.danger{border-color:var(--red);color:var(--red)}
.btn-xs.danger:hover{background:var(--red);color:#fff}
.badge{display:inline-block;padding:.18rem .55rem;border-radius:999px;font-size:.7rem;font-weight:700;letter-spacing:.03em}
.badge-green{background:rgba(34,197,94,.15);color:#22c55e}
.badge-gray{background:var(--bg-3);color:var(--text-3)}

/* ===== INSUMOS ===== */
.cell-warn{color:var(--red)!important;font-weight:600}

/* ===== RECETAS / FOOD COST ===== */
.fc-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:4px;vertical-align:middle}
.fc-dot.ok{background:#22c55e}
.fc-dot.warn{background:#f59e0b}
.fc-dot.over{background:#ef4444}
.fc-legend{font-size:.78rem;color:var(--text-2);display:flex;align-items:center;gap:.25rem;flex-wrap:wrap}
.fc-pct{font-weight:600}
.fc-ok{color:#22c55e}
.fc-warn{color:#f59e0b}
.fc-over{color:#ef4444}

/* Recipe builder modal */
.receta-builder{background:var(--bg-0);border:1px solid var(--border);border-radius:8px;overflow:hidden}
.rb-header{display:grid;grid-template-columns:1fr 100px 90px 90px 36px;gap:.4rem;padding:.5rem .75rem;background:var(--bg-1);font-size:.73rem;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em}
.rb-row{display:grid;grid-template-columns:1fr 100px 90px 90px 36px;gap:.4rem;padding:.4rem .75rem;border-top:1px solid var(--border);align-items:center}
.rb-row:first-child{border-top:none}
.rb-select{font-size:.8rem;padding:.3rem .5rem;height:32px}
.rb-cantidad{font-size:.8rem;padding:.3rem .5rem;height:32px;text-align:right}
.rb-unidad{font-size:.8rem;padding:.3rem .5rem;height:32px}
.rb-costo-cell{font-size:.78rem;color:var(--accent);text-align:right;white-space:nowrap}
@media(max-width:600px){
.rb-header{grid-template-columns:1fr 80px 72px 72px 30px}
.rb-row{grid-template-columns:1fr 80px 72px 72px 30px}
}

/* Food Cost dashboard */
.fc-dashboard{padding:.5rem 0}
.fc-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;margin-bottom:.75rem}
.fc-kpi{background:var(--bg-1);border:1px solid var(--border);border-radius:10px;padding:.75rem 1rem;display:flex;flex-direction:column;gap:.2rem}
.fc-kpi-label{font-size:.72rem;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em}
.fc-kpi-val{font-size:1.4rem;font-weight:700;color:var(--text-1)}
.fc-kpi-sub{font-size:.72rem;color:var(--text-3)}
.fc-criticos-section{margin-top:1.25rem;padding:.75rem;background:var(--bg-1);border-radius:10px;border:1px solid var(--border)}
.fc-section-title{font-size:.78rem;font-weight:600;color:var(--text-2);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.6rem}
.fc-critico-item{font-size:.82rem;color:var(--text-1);padding:.3rem 0;border-bottom:1px solid var(--border)}
.fc-critico-item:last-child{border-bottom:none}

/* ============================================================
   PANEL DE MÉTRICAS ADMIN
   ============================================================ */
.mtr-container{padding:1.1rem 1.25rem 2rem;max-width:1400px;margin:0 auto}

/* Header */
.mtr-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.1rem;flex-wrap:wrap;gap:.7rem}
.mtr-title{display:flex;align-items:center;gap:.55rem;font-size:1.15rem;font-weight:700;color:var(--text-1)}
.mtr-title i{color:var(--accent);font-size:1.05rem}
.mtr-controls{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap}
.mtr-periodo-bar{display:flex;background:var(--surface-2,rgba(255,255,255,.04));border:1px solid var(--border);border-radius:9px;padding:.18rem;gap:.1rem}
.mtr-per-btn{background:transparent;border:none;color:var(--text-2);padding:.32rem .85rem;border-radius:7px;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .18s ease;white-space:nowrap}
.mtr-per-btn:hover{color:var(--text-1);background:rgba(255,255,255,.06)}
.mtr-per-btn.active{background:var(--accent);color:#fff;box-shadow:0 2px 10px rgba(249,115,22,.35)}
.mtr-fecha-lbl{font-size:.78rem;color:var(--text-3);font-style:italic;white-space:nowrap}
.mtr-refresh{background:transparent;border:1.5px solid var(--border);color:var(--text-2);width:30px;height:30px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.85rem;transition:all .2s ease;flex-shrink:0}
.mtr-refresh:hover{border-color:var(--accent);color:var(--accent);transform:rotate(90deg)}

/* KPI Strip */
.mtr-kpi-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem;margin-bottom:1rem}
.mtr-loading-full{grid-column:1/-1;display:flex;align-items:center;justify-content:center;padding:1.5rem;color:var(--text-3);gap:.5rem;font-size:.85rem}
.mtr-kpi{display:flex;align-items:center;gap:.7rem;padding:.85rem 1rem;border-radius:12px;background:rgba(255,255,255,.03);border:1px solid var(--border);transition:transform .2s,box-shadow .2s;cursor:default}
.mtr-kpi:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.25)}
.mtr-kpi.green{border-color:rgba(46,204,113,.2);background:linear-gradient(135deg,rgba(46,204,113,.05),transparent)}
.mtr-kpi.yellow{border-color:rgba(241,196,15,.2);background:linear-gradient(135deg,rgba(241,196,15,.05),transparent)}
.mtr-kpi.blue{border-color:rgba(59,130,246,.2);background:linear-gradient(135deg,rgba(59,130,246,.05),transparent)}
.mtr-kpi.purple{border-color:rgba(168,85,247,.2);background:linear-gradient(135deg,rgba(168,85,247,.05),transparent)}
.mtr-kpi-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:.95rem;flex-shrink:0}
.mtr-kpi.green .mtr-kpi-icon{background:rgba(46,204,113,.15);color:#2ecc71}
.mtr-kpi.yellow .mtr-kpi-icon{background:rgba(241,196,15,.15);color:#f1c40f}
.mtr-kpi.blue .mtr-kpi-icon{background:rgba(59,130,246,.15);color:#3b82f6}
.mtr-kpi.purple .mtr-kpi-icon{background:rgba(168,85,247,.15);color:#a855f7}
.mtr-kpi-val{font-size:1.1rem;font-weight:800;color:var(--text-1);line-height:1;white-space:nowrap}
.mtr-kpi-lbl{font-size:.68rem;color:var(--text-3);margin-top:.2rem;font-weight:500;text-transform:uppercase;letter-spacing:.04em}

/* Cards 2×2 Grid */
.mtr-cards-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.85rem}
.mtr-card{background:rgba(255,255,255,.03);border:1px solid var(--border);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;min-height:280px;transition:box-shadow .2s}
.mtr-card:hover{box-shadow:0 4px 24px rgba(0,0,0,.2)}
.mtr-card-hdr{display:flex;align-items:center;justify-content:space-between;padding:.8rem 1rem;border-bottom:1px solid var(--border);background:rgba(255,255,255,.025)}
.mtr-card-ttl{font-size:.85rem;font-weight:700;color:var(--text-1);display:flex;align-items:center;gap:.45rem}
.mtr-card-ttl i{color:var(--accent)}
.mtr-card-badge{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:.15rem .45rem;border-radius:20px;background:rgba(249,115,22,.15);color:var(--accent);border:1px solid rgba(249,115,22,.25)}
.mtr-card-skel{flex:1;background:linear-gradient(90deg,rgba(255,255,255,.03) 25%,rgba(255,255,255,.06) 50%,rgba(255,255,255,.03) 75%);background-size:200% 100%;animation:mtr-shimmer 1.5s ease infinite;min-height:260px;border-radius:8px}
@keyframes mtr-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* Card Cobros */
.mtr-cobro-totals{display:flex;align-items:center;padding:.9rem 1rem .5rem;gap:.5rem}
.mtr-cobro-usd,.mtr-cobro-bs{flex:1}
.mco-val{font-size:1.15rem;font-weight:800;line-height:1}
.mtr-cobro-usd .mco-val{color:#2ecc71}
.mtr-cobro-bs .mco-val{color:#f1c40f}
.mco-lbl{font-size:.67rem;color:var(--text-3);margin-top:.2rem;text-transform:uppercase;letter-spacing:.03em;font-weight:500}
.mtr-cobro-sep{width:1px;height:38px;background:var(--border);flex-shrink:0}
.mtr-instr-list{padding:.35rem .75rem .85rem;display:flex;flex-direction:column;gap:.3rem;flex:1}
.mtr-instr-row{display:flex;align-items:center;gap:.6rem;padding:.5rem .55rem;border-radius:8px;background:transparent;transition:background .15s}
.mtr-instr-row:hover{background:rgba(255,255,255,.04)}
.mtr-instr-ico{width:30px;height:30px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:.75rem;flex-shrink:0}
.mtr-instr-info{flex:1;min-width:0}
.mtr-instr-name{font-size:.8rem;font-weight:600;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.mtr-instr-qty{font-size:.67rem;color:var(--text-3);display:block;margin-top:.05rem}
.mtr-instr-amt{font-size:.85rem;font-weight:700;color:var(--text-1);white-space:nowrap;flex-shrink:0}

/* Rank rows (platos / meseros / clientes) */
.mtr-rank-list{padding:.4rem .75rem .85rem;display:flex;flex-direction:column;gap:.15rem;flex:1}
.mtr-rank-row{display:flex;align-items:center;gap:.6rem;padding:.5rem .45rem;border-radius:9px;transition:background .15s;cursor:default}
.mtr-rank-row:hover{background:rgba(255,255,255,.04)}
.mtr-rank-pos{width:24px;height:24px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:800;flex-shrink:0}
.mtr-rank-img{width:34px;height:34px;border-radius:7px;object-fit:cover;flex-shrink:0;border:1px solid var(--border)}
.mtr-rank-img-ph{width:34px;height:34px;border-radius:7px;background:rgba(255,255,255,.06);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--text-3);font-size:.75rem;flex-shrink:0}
.mtr-rank-avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;flex-shrink:0;letter-spacing:.02em}
.mtr-rank-info{flex:1;min-width:0}
.mtr-rank-name{font-size:.82rem;font-weight:600;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;line-height:1.2}
.mtr-rank-sub{font-size:.67rem;color:var(--text-3);margin-top:.1rem;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mtr-rank-stat{text-align:right;flex-shrink:0}
.mtr-rank-val{font-size:.95rem;font-weight:800;color:var(--text-1);line-height:1}
.mtr-rank-lbl{font-size:.62rem;color:var(--text-3);margin-top:.1rem;text-transform:uppercase;letter-spacing:.04em}

/* Empty state */
.mtr-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1rem;color:var(--text-3);font-size:.82rem;gap:.5rem;text-align:center;flex:1}
.mtr-empty i{font-size:1.6rem;opacity:.35}

/* Responsive */
@media(max-width:900px){
    .mtr-kpi-strip{grid-template-columns:repeat(2,1fr)}
    .mtr-cards-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
    .mtr-container{padding:.75rem .75rem 1.5rem}
    .mtr-header{flex-direction:column;align-items:flex-start}
    .mtr-kpi-strip{grid-template-columns:repeat(2,1fr);gap:.5rem}
    .mtr-kpi{padding:.65rem .75rem}
    .mtr-kpi-val{font-size:.95rem}
}

/* ===== IMPRESORAS ===== */
.imp-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.65rem .85rem;border-radius:8px;background:var(--surface-2);margin-bottom:.5rem;transition:opacity .2s}
.imp-row--inactive{opacity:.5}
.imp-row-info{display:flex;align-items:center;gap:.6rem;flex:1;min-width:0}
.imp-row-nombre{font-weight:600;font-size:.9rem;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.imp-row-tipo{font-size:.72rem;padding:.15rem .5rem;border-radius:99px;background:var(--surface-3);color:var(--text-2)}
.imp-row-badge-off{font-size:.7rem;padding:.1rem .45rem;border-radius:99px;background:var(--red-bg,#3c1212);color:var(--red,#f87171)}
.imp-row-actions{display:flex;gap:.4rem;flex-shrink:0}
.btn-icon{width:2rem;height:2rem;border-radius:6px;border:none;cursor:pointer;background:var(--surface-3);color:var(--text-2);display:flex;align-items:center;justify-content:center;font-size:.8rem;transition:background .15s,color .15s}
.btn-icon:hover{background:var(--accent);color:#fff}
.btn-icon--danger:hover{background:var(--red,#ef4444);color:#fff}
#impresorasList{padding:.25rem 0}
#ticketModalFooter{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end;padding:.75rem 1rem;border-top:1px solid var(--border)}

/* ===== CUADRE X — MEJORAS FASE A ===== */
.xr-fisico{display:flex;align-items:center;justify-content:space-between;margin-top:.75rem;padding:.6rem .85rem;border-radius:8px;background:var(--surface-3);border:1.5px solid var(--green,#22c55e)}
.xr-fisico span:first-child{font-size:.8rem;color:var(--text-2)}
.xr-fisico-vals{font-size:1rem;color:var(--green,#22c55e)}
.xr-fisico-vals strong{font-size:1.05rem}
.xr-propina{color:var(--yellow,#eab308)!important}
.xr-propina-row td{font-style:italic;color:var(--yellow,#eab308)}
.xr-ci-chips{font-size:.7rem;color:var(--text-3)}
.xr-ci-chip{display:inline-block;background:var(--surface-3);border-radius:4px;padding:.1rem .35rem;margin:.1rem .1rem 0 0}
/* propina-row compacto en modal cobro */
.propina-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.3rem 0}
.propina-row label{font-size:.8rem;color:var(--text-2);white-space:nowrap}
.propina-row .input-dark{width:7rem;text-align:right}
/* B3: bottleneck icon in inventory table */
.inv-bn-icon{color:var(--yellow,#eab308);cursor:help;font-size:.78rem;margin-left:.3rem;opacity:.85}
.inv-bn-icon:hover{opacity:1}
/* B6: "no contado" badge in insumos table */
.ins-no-conteo{display:inline-block;font-size:.68rem;font-weight:600;padding:.1rem .4rem;border-radius:3px;background:rgba(239,68,68,.15);color:var(--red,#ef4444);border:1px solid rgba(239,68,68,.25);margin-left:.35rem;vertical-align:middle;cursor:default}
/* C1: stock type prefix icons in inventory table */
.inv-stk-prefix{font-size:.75rem;cursor:default}
.inv-stk-prefix.fisico{color:var(--text-3,#6b7280)}
.inv-stk-prefix.receta{color:var(--accent,#FF6B35)}
/* C2: tasa stale alert banner */
.tasa-alerta-banner{display:flex;align-items:center;gap:.6rem;padding:.5rem 1.2rem;background:rgba(234,179,8,.12);border-bottom:2px solid rgba(234,179,8,.4);color:var(--yellow,#eab308);font-size:.8rem;flex-wrap:wrap}
.tasa-alerta-banner i{font-size:.95rem;flex-shrink:0}
.tasa-alerta-banner span{flex:1;min-width:200px}
/* C3: 4-stat order grid in turno resumen */
.ts-order-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:1rem}
.ts-og-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.6rem .5rem;border-radius:8px;background:var(--surface-2);border:1px solid var(--border)}
.ts-og-cell.green{border-color:var(--green,#22c55e);background:rgba(34,197,94,.08)}
.ts-og-cell.red{border-color:var(--red,#ef4444);background:rgba(239,68,68,.08)}
.ts-og-cell.yellow{border-color:var(--yellow,#eab308);background:rgba(234,179,8,.08)}
.ts-og-val{font-size:1.6rem;font-weight:700;line-height:1}
.ts-og-lbl{font-size:.7rem;color:var(--text-3);margin-top:.2rem;text-transform:uppercase;letter-spacing:.04em}
.ts-og-cell.green .ts-og-val{color:var(--green,#22c55e)}
.ts-og-cell.red .ts-og-val{color:var(--red,#ef4444)}
.ts-og-cell.yellow .ts-og-val{color:var(--yellow,#eab308)}
/* Mesa ocupada — modal comandas activas */
.moc-comanda{border:1px solid var(--border);border-radius:8px;padding:.65rem .85rem;margin-bottom:.6rem;background:var(--surface-2)}
.moc-nueva{border-color:var(--accent);background:rgba(255,107,53,.06)}
.moc-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.3rem}
.moc-num{font-weight:700;font-size:.85rem;color:var(--text-1);flex:1}
.moc-hora{font-size:.75rem;color:var(--text-3)}
.moc-total{font-weight:700;color:var(--green,#22c55e);font-size:.9rem}
.moc-items{font-size:.78rem;color:var(--text-2);line-height:1.4;margin-bottom:.4rem}
.moc-notas{font-size:.72rem;color:var(--yellow,#eab308);margin-bottom:.4rem;font-style:italic}
.moc-footer{display:flex;justify-content:flex-end}
/* Mesa card multi-comanda state */
.mesa-card[data-n-comandas="2"] .mc-status,
.mesa-card[data-n-comandas="3"] .mc-status,
.mesa-card[data-n-comandas="4"] .mc-status{color:var(--yellow,#eab308)!important}
/* C4: cuadre X export actions bar */
.xr-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:1rem;padding-bottom:.5rem}
.xr-act-export{background:var(--surface-3)!important;border:1px solid var(--border)!important;color:var(--text-1)!important;font-size:.8rem!important;padding:.4rem .8rem!important}
.xr-act-export:hover{background:var(--surface-2)!important;border-color:var(--accent)!important;color:var(--accent)!important}

/* Cobro unificado de mesa */
.moc-cobro-orden{border:1px solid var(--border);border-radius:6px;padding:.5rem .75rem;margin-bottom:.45rem;background:var(--surface-2)}
.moc-cobro-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.2rem}
.moc-cobro-header span:first-child{font-weight:700;font-size:.83rem;color:var(--text-1)}
.moc-cobro-sub{font-weight:700;color:var(--green,#22c55e);font-size:.88rem}
.moc-cobro-items{font-size:.76rem;color:var(--text-2);line-height:1.35}
.moc-cobro-total{display:flex;justify-content:space-between;align-items:center;font-weight:700;font-size:.95rem;color:var(--green,#22c55e);padding:.55rem .75rem;border-radius:6px;background:rgba(34,197,94,.09);border:1px solid rgba(34,197,94,.3);margin-top:.35rem}
.moc-footer{display:flex;justify-content:flex-end;gap:.4rem}
/* ===== CONCEPTOS DE VENTA (Retira / Delivery) ===== */
.conceptos-section{margin-bottom:1rem}
.conceptos-label{display:block;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--text-3);margin-bottom:.45rem;padding-left:.1rem}
.conceptos-row{display:flex;gap:.75rem;flex-wrap:wrap}
.mesas-section .mesas-grid-inner{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.75rem}
.mesa-card.mesa-concepto{min-width:130px;max-width:180px;border-radius:10px;border:2px dashed var(--border);display:flex;flex-direction:column;align-items:center;gap:.2rem;padding:.75rem .6rem;cursor:pointer;transition:all .15s var(--ease);background:var(--surface-2)}
.mesa-card.mesa-concepto:hover,.mesa-card.mesa-concepto.cm-selectable:hover{border-style:solid;transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.15)}
.mesa-card.mesa-concepto.mesa-ocupada{border-style:solid;background:var(--surface-3)}
.mesa-card.mesa-concepto .mesa-icon{font-size:1.6rem;margin-bottom:.1rem}
.mesa-card.mesa-concepto .mc-nombre{font-size:.8rem;font-weight:700;color:var(--text-1);text-align:center}
.mesa-card.mesa-concepto .mc-status{font-size:.72rem;font-weight:600}
.mesa-card.mesa-concepto .mc-orden{font-size:.7rem;color:var(--text-3);text-align:center}

/* ═══════════════════════════════════════════════════════════════
   PWA — Safe areas, banners, install prompt
   ═══════════════════════════════════════════════════════════════ */

/* ── Safe Area: header (notch / Dynamic Island) ─────────────────── */
.pos-header {
    padding-top: env(safe-area-inset-top, 0px);
    height: calc(var(--hdr) + env(safe-area-inset-top, 0px));
}
/* Shift the page content down to account for taller header */
body {
    padding-top: env(safe-area-inset-top, 0px);
}

/* ── SW Update Banner ───────────────────────────────────────────── */
.pwa-update-banner {
    position: fixed;
    top: calc(var(--hdr) + env(safe-area-inset-top, 0px) + .5rem);
    left: 50%;
    transform: translateX(-50%);
    background: var(--bg-3);
    border: 1px solid var(--accent);
    border-radius: var(--r);
    padding: .55rem 1rem;
    display: flex;
    align-items: center;
    gap: .6rem;
    z-index: 9999;
    box-shadow: var(--shadow);
    font-size: .85rem;
    color: var(--text-1);
    white-space: nowrap;
    max-width: calc(100vw - 2rem);
}
.pwa-update-banner i { color: var(--accent); }
.pwa-update-banner button {
    background: var(--accent);
    color: #fff;
    border: none;
    padding: .3rem .75rem;
    border-radius: var(--r-sm);
    font-size: .8rem;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s var(--ease);
}
.pwa-update-banner button:hover { background: var(--accent-h); }
.pwa-ub-close {
    background: transparent !important;
    color: var(--text-3) !important;
    padding: .2rem .35rem !important;
    font-size: .85rem !important;
}

/* ── Android Install Banner ─────────────────────────────────────── */
/* Mobile: top position avoids overlapping COBRAR / GENERAR ORDEN buttons */
.pwa-install-banner {
    position: fixed;
    top: calc(var(--hdr) + env(safe-area-inset-top, 0px) + .5rem);
    bottom: auto;
    left: .75rem;
    right: .75rem;
    background: var(--bg-2);
    border: 1px solid var(--accent);
    border-radius: var(--r-lg);
    padding: .75rem 1rem;
    display: flex;
    align-items: center;
    gap: .75rem;
    z-index: 9998;
    box-shadow: 0 4px 20px rgba(0,0,0,.5);
    animation: pwaSlideUp .3s var(--ease);
}
@media (min-width: 640px) {
    /* Desktop: bottom of screen, nav is hidden so no overlap */
    .pwa-install-banner {
        top: auto;
        bottom: 1rem;
        left: 50%;
        right: auto;
        transform: translateX(-50%);
        min-width: 380px;
        max-width: 500px;
    }
}
.pwa-ib-icon {
    width: 42px; height: 42px;
    background: var(--accent-bg);
    border-radius: var(--r);
    display: flex; align-items: center; justify-content: center;
    color: var(--accent);
    font-size: 1.2rem;
    flex-shrink: 0;
}
.pwa-ib-text {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: .1rem;
    overflow: hidden;
}
.pwa-ib-text strong { font-size: .85rem; color: var(--text-0); white-space: nowrap; }
.pwa-ib-text span   { font-size: .75rem; color: var(--text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pwa-ib-btn {
    background: var(--accent);
    color: #fff;
    border: none;
    padding: .45rem 1rem;
    border-radius: var(--r);
    font-size: .8rem;
    font-weight: 700;
    cursor: pointer;
    flex-shrink: 0;
    transition: background .15s var(--ease);
}
.pwa-ib-btn:hover { background: var(--accent-h); }
.pwa-ib-close {
    background: transparent;
    border: none;
    color: var(--text-3);
    cursor: pointer;
    font-size: 1rem;
    padding: .2rem;
    flex-shrink: 0;
    line-height: 1;
    transition: color .15s;
}
.pwa-ib-close:hover { color: var(--text-1); }

/* ── iOS Install Hint ───────────────────────────────────────────── */
.pwa-ios-hint {
    position: fixed;
    bottom: calc(env(safe-area-inset-bottom, 0px) + 10px);
    left: 1rem;
    right: 1rem;
    background: var(--bg-3);
    border: 1px solid var(--border);
    border-radius: var(--r-lg);
    padding: 1rem 1rem .8rem;
    z-index: 9998;
    box-shadow: 0 4px 24px rgba(0,0,0,.6);
    font-size: .85rem;
    color: var(--text-1);
    line-height: 1.5;
    text-align: center;
    animation: pwaSlideUp .3s var(--ease);
}
.pwa-ios-hint p { margin: 0 1.5rem; }
.pwa-ios-hint i { color: var(--accent); }
.pwa-ios-close {
    position: absolute;
    top: .5rem; right: .6rem;
    background: transparent;
    border: none;
    color: var(--text-3);
    font-size: .9rem;
    cursor: pointer;
    padding: .2rem .4rem;
    line-height: 1;
    transition: color .15s;
}
.pwa-ios-close:hover { color: var(--text-1); }
.pwa-ios-arrow {
    width: 0; height: 0;
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    border-top: 10px solid var(--bg-3);
    margin: .5rem auto 0;
    filter: drop-shadow(0 2px 2px rgba(0,0,0,.3));
}

@keyframes pwaSlideUp {
    from { opacity: 0; transform: translateY(12px); }
    to   { opacity: 1; transform: translateY(0); }
}
@media (min-width: 640px) {
    .pwa-ios-hint {
        left: 50%;
        right: auto;
        transform: translateX(-50%);
        min-width: 340px;
        max-width: 440px;
    }
}

/* ── Offline Status Banner ──────────────────────────────────────── */
.pwa-offline-banner {
    position: fixed;
    top: calc(var(--hdr) + env(safe-area-inset-top, 0px));
    left: 0;
    right: 0;
    height: 30px;
    background: #92400e;
    color: #fef3c7;
    font-size: .72rem;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    z-index: 9997;
    letter-spacing: .02em;
    text-transform: uppercase;
}
/* Shift main content down when offline banner is visible */
body.is-offline .pos-main {
    margin-top: calc(var(--hdr) + env(safe-area-inset-top, 0px) + 30px);
}
/* Also shift update banner down if both are visible */
body.is-offline .pwa-update-banner {
    top: calc(var(--hdr) + env(safe-area-inset-top, 0px) + 30px + .5rem);
}
/* On desktop, main already uses margin-top:var(--hdr); adjust for offline stripe */
@media (min-width: 640px) {
    body.is-offline .pos-main {
        margin-top: calc(var(--hdr) + 30px);
    }
}

/* ===== SPLIT CHECK ===== */
.split-check-row{display:flex;align-items:center;gap:.45rem;padding:.45rem .65rem;background:rgba(99,102,241,.07);border:1px solid rgba(99,102,241,.22);border-radius:.45rem;margin:.35rem 0;flex-wrap:wrap}
.split-check-row span{font-size:.82rem;color:var(--text-2);white-space:nowrap}
.split-check-row .input-dark{width:52px;text-align:center;padding:.3rem .4rem}
.split-btn{background:var(--accent);color:#fff;border:none;border-radius:.4rem;padding:.35rem .75rem;font-size:.8rem;font-weight:700;cursor:pointer;white-space:nowrap;transition:opacity .15s}
.split-btn:hover{opacity:.85}
.split-progress{background:rgba(99,102,241,.12);border:1px solid rgba(99,102,241,.35);border-radius:.45rem;padding:.5rem .75rem;margin:.35rem 0;text-align:center;font-size:.9rem;font-weight:700;color:var(--accent)}
