/* =============================================
   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);
}

*,*::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:pointer;font-weight:600;transition:all .2s var(--ease)}
.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)}
.bn-item{display:flex;flex-direction:column;align-items:center;gap:.15rem;background:none;border:none;color:var(--text-3);cursor:pointer;padding:.3rem .2rem;font-size:.65rem;font-weight:600;transition:color .2s;position:relative;min-width:0}
.bn-item i{font-size:1.15rem}
.bn-item span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:52px}
.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)}

/* 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 — 360px safe */
.products-grid{flex:1;display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;padding:0 .6rem .6rem;overflow-y:auto;align-content:start;-webkit-overflow-scrolling:touch}

/* Product Card */
.product-card{background:var(--bg-2);border-radius:var(--r);border:1.5px solid var(--border);padding:.75rem .75rem .6rem;cursor:pointer;transition:all .15s var(--ease);display:flex;flex-direction:column;gap:.35rem;position:relative;overflow:hidden;user-select:none;-webkit-user-select:none;min-width:0}
.product-card::after{content:'';position:absolute;top:0;left:0;width:100%;height:3px}
.product-card:active{transform:scale(.97);border-color:var(--accent)}
.product-card .pc-badge{position:absolute;top:.45rem;right:.45rem;font-size:.62rem;padding:.15rem .4rem;border-radius:4px;font-weight:700;line-height:1}
.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)}
.product-card .pc-name{font-weight:700;font-size:.92rem;line-height:1.25;color:var(--text-0);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;padding-right:2.8rem}
.product-card .pc-desc{font-size:.74rem;color:var(--text-2);line-height:1.3;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;min-height:1.9em}
.product-card .pc-prices{display:flex;align-items:baseline;gap:.5rem;margin-top:auto;padding-top:.35rem;border-top:1px solid var(--border)}
.product-card .pc-usd{font-size:1.1rem;font-weight:800;color:var(--green)}
.product-card .pc-bs{font-size:.8rem;color:var(--yellow);font-weight:600}
.product-card.out-of-stock{opacity:.35;pointer-events:none}
.product-card .pc-add{position:absolute;bottom:.5rem;right:.5rem;width:32px;height:32px;border-radius:50%;border:none;background:var(--accent);color:#fff;font-size:.85rem;display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:1;transition:transform .15s;box-shadow:0 2px 6px rgba(255,107,53,.3)}
.product-card .pc-add:active{transform:scale(.9)}

/* ===== CART ===== */
.pos-cart{display:none;flex-direction:column;background:var(--bg-1);border-top:1px solid var(--border);max-height:55vh}
.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;height:100%;min-height:80px;color:var(--text-3);gap:.4rem;font-size:.85rem}
.cart-empty i{font-size:1.8rem;opacity:.5}

/* 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 */
.pago-methods{display:grid;grid-template-columns:repeat(2,1fr);gap:.4rem;margin-bottom:.75rem}
.pm-btn{display:flex;align-items:center;gap:.5rem;padding:.7rem;border-radius:var(--r);border:1.5px solid var(--border);background:var(--bg-2);color:var(--text-1);cursor:pointer;font-size:.8rem;font-weight:600;transition:all .15s var(--ease)}
.pm-btn:active{transform:scale(.97);border-color:var(--accent)}
.pm-icon{width:36px;height:36px;border-radius:var(--r);display:flex;align-items:center;justify-content:center;font-size:1rem;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)}

.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}
    .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:380px;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)}
    .pago-methods{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(min-width:1024px){
    .products-grid{grid-template-columns:repeat(4,1fr)}
    .pos-cart{width:370px}
}
@media(min-width:1280px){
    .products-grid{grid-template-columns:repeat(5,1fr)}
    .pos-cart{width:390px}
}

/* ===== 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}

/* ===== 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:1fr auto;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)}

/* ===== 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)}
.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 VISIBILITY ===== */
body.role-mesero .admin-only{display:none !important}
body.role-admin .mesero-only{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}
}
