/* =============================================
   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: #949ab8;
    --text-3: #7c7fa8;
    --accent: #FF6B35;
    --accent-h: #ff8855;
    --accent-hover: #e34f22;
    --accent-rgb: 255,107,53;
    --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;
    /* Superficies compartidas — antes no existían y caían al fallback */
    --surface-2: rgba(255,255,255,.04);
    --surface-3: rgba(255,255,255,.07);
    /* Sombras de la misma familia (gris azulado), no negro puro */
    --shadow: 0 2px 12px rgba(10,10,26,.35);
    --shadow-soft: 0 2px 12px rgba(10,10,26,.28);
    --shadow-lift: 0 12px 32px rgba(10,10,26,.55);
    --shadow-tint: 0 8px 24px rgba(255,107,53,.16);
    /* Tipografía */
    --font-sans: 'Outfit', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
    --font-mono: ui-monospace, 'SF Mono', 'Cascadia Code', Consolas, 'Courier New', monospace;
    /* Radios */
    --r-sm: 6px;
    --r: 10px;
    --r-md: 10px;
    --r-lg: 14px;
    --r-input: 8px;
    --r-full: 9999px;
    --hdr: 56px;
    --nav: 64px;
    --ease: cubic-bezier(.4,0,.2,1);
    /* Controles nativos en tema oscuro (date-picker, select, checkbox) */
    color-scheme: dark;
    accent-color: var(--accent);
}

/* 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%;font-variant-numeric:tabular-nums}
body{
    font-family:var(--font-sans);
    background:
        radial-gradient(1100px 520px at 85% -5%,rgba(255,107,53,.07),transparent 60%),
        radial-gradient(900px 480px at -8% 15%,rgba(99,102,241,.05),transparent 55%),
        var(--bg-0);
    color:var(--text-0);
    min-height:100dvh;
    overflow-x:hidden;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
    isolation:isolate;
}
::-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}

/* ===== ACCESIBILIDAD + NÚMEROS ===== */
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
button:focus:not(:focus-visible),a:focus:not(:focus-visible),input:focus:not(:focus-visible),select:focus:not(:focus-visible),textarea:focus:not(:focus-visible){outline:none}
@media (prefers-reduced-motion: reduce){
    *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}
/* Tracking fino en totales y KPIs — los números grandes respiran mejor */
.os-val,.is-val,.kpi-val,.fc-kpi-val,.mtr-kpi-val,.mtr-rank-val,.ts-og-val,
.ctd-usd,.ct-row.main,.pc-usd,.ci-subtotal,.ci-qty span,.cc-total,.oc-total-usd,
.mtr-instr-amt,.vp-total,.hor-amt,.mco-val,.xr-kpi strong{letter-spacing:-.02em}
/* Mono para datos técnicos (PIN, nros. traslado, IPs) */
.ui-meta .ui-pin,.tr-hist-table .tr-num,.imp-row-ip{font-family:var(--font-mono)}

/* ===== FASE B: SUPERFICIE + BOTONES ===== */
/* Grano sutil sobre toda la UI — rompe el plano digital (pointer-events none) */
body::after{
    content:'';position:fixed;inset:0;z-index:9998;pointer-events:none;opacity:.04;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.6'/%3E%3C/svg%3E");
}
/* ===== FASE M1: AURORA VIVIENTE ===== */
/* Orbes de luz que derivan lentamente detrás de toda la UI (z:-1, tras el fondo de body, delante del contenido) */
body::before{
    content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;
    background:
        radial-gradient(560px 420px at 16% 10%,rgba(255,107,53,.16),transparent 62%),
        radial-gradient(640px 460px at 84% 6%,rgba(99,102,241,.15),transparent 60%),
        radial-gradient(520px 420px at 70% 82%,rgba(255,107,53,.10),transparent 60%),
        radial-gradient(480px 380px at 30% 92%,rgba(34,211,238,.06),transparent 60%);
    filter:blur(5px);
    animation:auroraShift 30s ease-in-out infinite alternate;
}
@keyframes auroraShift{
    0%{transform:translate3d(0,0,0) scale(1)}
    50%{transform:translate3d(-20px,16px,0) scale(1.06)}
    100%{transform:translate3d(22px,-14px,0) scale(1.03)}
}
/* En pantallas táctiles pequeñas: aurora más tenue para no quemar GPU/batería */
@media(max-width:767px){
    body::before{filter:blur(6px);opacity:.8}
}

/* Base de botones unificada: cursor, selección, feedback de presión y disabled */
button{user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}
button:active:not(:disabled){transform:scale(.97)}
button:disabled{opacity:.5;cursor:not-allowed}
.btn-sm,.btn-action,.btn-xs,.btn-icon,.btn-cobrar,.btn-confirmar-pago,.rep-exp-btn,.qa-btn,
.rc-btn,.rt-btn,.vp-btn,.sab-btn,.pln-ver,.cat-btn,.hn-btn,.bn-item,.ci-btn,.ci-qty button,
.ci-remove,.pc-add,.ha-icon,.modal-x,.pp-btn,.btn-rm,.btn-hist,.btn-edit-c,.btn-edit-m,.btn-del-m{
    transition:transform .15s var(--ease),background .15s var(--ease),color .15s var(--ease),
               border-color .15s var(--ease),box-shadow .15s var(--ease),opacity .15s var(--ease);
}

/* ===== SPLASH ===== */
.splash{position:fixed;inset:0;background:radial-gradient(600px 420px at 20% 12%,rgba(255,107,53,.14),transparent 62%),radial-gradient(520px 380px at 82% 18%,rgba(99,102,241,.12),transparent 60%),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{position:relative;width:80px;height:80px;margin:0 auto 1.2rem;border-radius:22px;background:linear-gradient(135deg,var(--accent),#ff9966);display:flex;align-items:center;justify-content:center;font-size:2.2rem;color:#fff;animation:splashGlow 2s ease-in-out infinite}
.splash-icon-wrap::before{content:'';position:absolute;inset:-11px;border-radius:28px;border:2px solid rgba(255,107,53,.35);border-top-color:#fff;animation:ringSpin 1.4s linear infinite}
@keyframes ringSpin{to{transform:rotate(360deg)}}
@keyframes splashGlow{0%,100%{box-shadow:0 0 22px rgba(255,107,53,.3)}50%{box-shadow:0 0 46px rgba(255,107,53,.6)}}
.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:linear-gradient(180deg,rgba(24,25,38,.88),rgba(16,17,28,.78));backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.07);display:flex;align-items:center;padding:0 .75rem;gap:.5rem;z-index:100;transition:height .25s var(--ease),box-shadow .25s var(--ease),background .25s var(--ease)}
.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;min-width:0}
.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}

/* ===== MENÚ "Más" (P2: vistas secundarias agrupadas) ===== */
.mas-menu{
    position:fixed;
    top:calc(var(--hdr) + .35rem);
    right:0;
    z-index:95;
    min-width:230px;
    max-width:calc(100vw - 1rem);
    display:none;
    flex-direction:column;
    gap:.15rem;
    padding:.45rem;
    background:var(--bg-2);
    border:1px solid var(--border);
    border-radius:var(--r-lg);
    box-shadow:0 16px 40px rgba(0,0,0,.45);
}
.mas-menu.open{display:flex}
.mas-menu .hn-btn{
    justify-content:flex-start;
    width:100%;
    padding:.5rem .7rem;
    border-radius:.45rem;
    font-size:.82rem;
}
.mas-menu .hn-btn span{display:inline}
.mas-menu .hn-btn i{font-size:1rem;width:20px;text-align:center}
.mas-toggle.active,
.bn-item[data-mas].active{background:var(--accent-bg);color:var(--accent)}
.header-actions .mas-toggle{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:.77rem;gap:.35rem;padding:0 .65rem;transition:all .2s var(--ease)}
.header-actions .mas-toggle i{font-size:1rem}
.header-actions .mas-toggle:hover{background:var(--accent);color:#fff;border-color:var(--accent)}

.header-actions{display:flex;align-items:center;gap:.5rem;margin-left:auto;flex-shrink:0}
.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 (flotante, pill de vidrio) ===== */
.bottom-nav{
    position:fixed;
    bottom:calc(env(safe-area-inset-bottom,0px) + .55rem);
    left:50%;
    transform:translateX(-50%);
    width:calc(100% - 1.25rem);
    max-width:620px;
    height:calc(var(--nav) - .55rem);
    background:linear-gradient(180deg,rgba(26,27,40,.92),rgba(16,17,28,.94));
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
    border:1px solid rgba(255,255,255,.08);
    border-radius:22px;
    box-shadow:0 14px 36px -12px rgba(10,10,26,.75),inset 0 1px 0 rgba(255,255,255,.05);
    display:flex;align-items:center;justify-content:space-around;
    z-index:100;
    overflow-x:auto;scrollbar-width:none;
    padding:.3rem .4rem;
}
.bottom-nav::-webkit-scrollbar{display:none}
.bn-item{
    display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.12rem;
    background:none;border:none;color:var(--text-3);cursor:pointer;
    padding:.32rem .45rem;font-size:.62rem;font-weight:700;letter-spacing:.01em;
    transition:color .25s var(--ease),background .25s var(--ease),box-shadow .25s var(--ease);
    position:relative;flex:1 0 auto;min-width:46px;border-radius:16px;
}
.bn-item i{font-size:1.15rem;transition:transform .35s cubic-bezier(.34,1.56,.64,1)}
.bn-item span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:56px}
.bn-item:active i{transform:scale(.82)}
.bn-item.active{
    color:var(--accent);
    background:linear-gradient(180deg,rgba(255,107,53,.15),rgba(255,107,53,.06));
    box-shadow:inset 0 0 0 1px rgba(255,107,53,.28);
}
.bn-item.active i{transform:translateY(-1px) scale(1.18)}

/* ===== MAIN ===== */
.pos-main{margin-top:var(--hdr);margin-bottom:var(--nav);min-height:calc(100dvh - var(--hdr) - var(--nav))}
.view{display:none;animation:viewIn .3s cubic-bezier(.22,1,.36,1)}
.view.active{display:block}
@keyframes viewIn{from{opacity:0;transform:translateY(14px) scale(.988)}to{opacity:1;transform:translateY(0) scale(1)}}

/* ===== 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 — auto-fill fluido: máxima columna utilizable
   en cualquier pantalla (móvil amplio, desktop compacto). */
.products-grid{flex:1;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));grid-auto-rows:max-content;gap:.6rem;padding:0 .6rem .6rem;overflow-y:auto;align-content:start;-webkit-overflow-scrolling:touch}

/* ===== PRODUCT CARD — Premium, toda la información siempre visible =====
   El nombre se limita a 2 líneas (ellipsis) y el footer reserva altura:
   el precio en Bs nunca se corta ni se solapa, ni con nombres largos. */

/* Media: imagen destacada o monograma del color de la categoría */
.pc-media{
    position:relative;
    aspect-ratio:16/10;
    border-radius:calc(var(--r-lg) - 2px);
    overflow:hidden;
    background:var(--bg-3);
    margin-bottom:.5rem;
    flex-shrink:0;
}
.pc-media img{
    position:relative;
    z-index:1;
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform .4s var(--ease);
}
/* Placeholder tras la imagen: visible mientras carga o si el archivo falta */
.pc-img-ph{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(180deg,rgba(255,255,255,.04),transparent),var(--bg-3);
    color:var(--text-3);
    font-size:1.5rem;
    border-radius:inherit;
    pointer-events:none;
}
.product-card:hover .pc-media img{transform:scale(1.07)}
/* Monograma para productos sin imagen: tile con el color de la categoría */
.pc-media-mono{
    display:flex;
    align-items:center;
    justify-content:center;
    background:
        radial-gradient(120% 150% at 85% -10%,rgba(var(--cc-rgb,255,107,53),.3),transparent 55%),
        radial-gradient(120% 140% at 0% 115%,rgba(255,255,255,.06),transparent 55%),
        var(--bg-3);
}
.pc-mono{
    font-size:2.4rem;
    font-weight:800;
    line-height:1;
    letter-spacing:-.04em;
    color:var(--cc,#FF6B35);
    text-shadow:0 0 28px rgba(var(--cc-rgb,255,107,53),.45);
    user-select:none;
}
/* Chip de stock — overlay top-right sobre el media (nunca compite con el nombre) */
.pc-chip{
    position:absolute;
    top:.38rem;
    right:.38rem;
    z-index:2;
    display:inline-flex;
    align-items:center;
    gap:.25rem;
    padding:.22rem .48rem;
    border-radius:999px;
    font-size:.6rem;
    font-weight:800;
    line-height:1;
    letter-spacing:.02em;
    white-space:nowrap;
    backdrop-filter:blur(6px);
    -webkit-backdrop-filter:blur(6px);
    box-shadow:0 2px 8px rgba(10,10,26,.35),inset 0 0 0 1px rgba(255,255,255,.08);
}
.pc-chip.ok{background:rgba(0,210,106,.2);color:#4fea9a}
.pc-chip.low{background:rgba(255,190,11,.18);color:#ffd14d;animation:badgePulse 2s ease-in-out infinite}
.pc-chip.out{background:rgba(255,59,92,.22);color:#ff7a94;animation:badgePulse 1.2s ease-in-out infinite}

/* 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{
    position:relative;
    isolation:isolate;
    display:flex;
    flex-direction:column;
    background:linear-gradient(180deg,var(--bg-3),var(--bg-2));
    border-radius:var(--r-lg);
    border:1px solid var(--border);
    padding:.55rem .6rem .55rem;
    cursor:pointer;
    transition:all .16s var(--ease);
    min-width:0;
    min-height:112px;
    overflow:hidden;
    user-select:none;
    -webkit-user-select:none;
    container-type:inline-size;
}
.product-card:active{transform:scale(.97);border-color:var(--cc,#FF6B35)}
/* Hairline superior con el color de la categoría (fade a transparente) */
.product-card::before{
    content:'';
    position:absolute;
    top:0;left:0;right:0;
    height:3px;
    z-index:3;
    background:linear-gradient(90deg,var(--cc,#FF6B35),transparent 80%);
    opacity:.9;
}
/* Spotlight radial que sigue al cursor (vars --mx/--my seteadas por JS) */
.product-card::after{
    content:'';
    position:absolute;
    inset:0;
    border-radius:inherit;
    background:radial-gradient(240px circle at var(--mx,50%) var(--my,50%),rgba(255,107,53,.15),rgba(255,255,255,.05) 40%,transparent 66%);
    opacity:0;
    transition:opacity .3s var(--ease);
    pointer-events:none;
    z-index:2;
}
.product-card:hover::after{opacity:1}

/* Cuerpo: nombre (máx 2 líneas) + descripción (máx 2 líneas) */
.pc-body{display:flex;flex-direction:column;gap:.24rem;min-width:0}
.product-card .pc-name{
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
    font-weight:800;
    font-size:.92rem;
    line-height:1.22;
    color:var(--text-0);
    overflow-wrap:anywhere;
    min-width:0;
}
.product-card .pc-desc{
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
    font-size:.72rem;
    color:var(--text-2);
    line-height:1.35;
    overflow-wrap:anywhere;
    min-width:0;
}

/* Footer: precios + botón. Altura reservada => el Bs siempre es visible */
.pc-footer{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:.4rem;
    margin-top:auto;
    padding-top:.42rem;
    border-top:1px solid var(--border);
}
.product-card .pc-prices{display:flex;flex-direction:column;gap:.2rem;flex:1;min-width:0}
.product-card .pc-usd{
    font-size:1.12rem;
    font-weight:800;
    color:var(--green);
    line-height:1.1;
    letter-spacing:-.01em;
    overflow-wrap:anywhere;
    min-width:0;
}
.product-card .pc-bs{
    align-self:flex-start;
    font-size:.72rem;
    font-weight:700;
    color:var(--yellow);
    line-height:1.15;
    overflow-wrap:anywhere;
    min-width:0;
    background:rgba(255,190,11,.09);
    border:1px solid rgba(255,190,11,.22);
    padding:.16rem .42rem;
    border-radius:6px;
}

/* Botón + — táctil 40px, nunca se solapa con el texto */
.product-card .pc-add{
    width:44px;
    height:44px;
    min-width:44px;
    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;
    flex-shrink:0;
    box-shadow:0 4px 12px rgba(255,107,53,.35);
    transition:transform .15s var(--ease),box-shadow .2s var(--ease);
}
.product-card .pc-add:active{transform:scale(.88)}

/* Agotado — deshabilitado visualmente */
.product-card.out-of-stock{opacity:.35;pointer-events:none}

/* Tipografía fluida por ancho de card (container queries) */
@container (max-width:230px){
    .product-card .pc-name{font-size:.84rem}
    .product-card .pc-desc{-webkit-line-clamp:1}
    .product-card .pc-usd{font-size:.98rem}
    .product-card .pc-bs{font-size:.66rem}
    .pc-mono{font-size:2rem}
}
@container (max-width:190px){
    .product-card .pc-name{font-size:.8rem}
    .product-card .pc-usd{font-size:.9rem}
    .product-card .pc-bs{font-size:.6rem}
    .product-card .pc-add{width:44px;height:44px;min-width:44px;font-size:.82rem}
}

/* Hover fino (desktop / touchpad con cursor) */
@media (hover:hover) and (pointer:fine){
    .product-card{transition:transform .2s var(--ease),border-color .2s var(--ease),box-shadow .25s var(--ease)}
    .product-card:hover{
        transform:translateY(-3px);
        border-color:rgba(var(--cc-rgb,255,107,53),.42);
        box-shadow:0 14px 30px -10px rgba(10,10,26,.6),0 0 0 1px rgba(var(--cc-rgb,255,107,53),.12);
    }
    .product-card:hover .pc-add{box-shadow:0 0 0 5px rgba(255,107,53,.16),0 8px 20px rgba(255,107,53,.4)}
}
@keyframes badgePulse{0%,100%{opacity:1}50%{opacity:.5}}

/* Badges de stock compartidos (modal de restock y listados) */
.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)}
.pc-badge.low,.pc-badge.out{animation:badgePulse 2s ease-in-out infinite}

/* ===== M3 · FLY-TO-CART — clon que vuela en arco hasta el carrito ===== */
.fly-clone{
    position:fixed;
    left:0;top:0;
    z-index:1200;
    pointer-events:none;
    border-radius:14px;
    overflow:hidden;
    display:flex;align-items:center;justify-content:center;
    background:linear-gradient(135deg,var(--accent),#ff9966);
    box-shadow:0 10px 26px -6px rgba(255,107,53,.5),0 0 0 1.5px rgba(255,107,53,.35);
    will-change:transform;
}
.fly-clone-img{
    position:absolute;inset:0;
    background-size:cover;background-position:center;
}
.fly-clone::after{
    content:'+';
    position:absolute;inset:0;
    display:flex;align-items:center;justify-content:center;
    color:#fff;font-size:1.4rem;font-weight:900;
    text-shadow:0 2px 8px rgba(0,0,0,.45);
    background:linear-gradient(180deg,rgba(10,10,26,.08),rgba(10,10,26,.4));
}
.fly-ring{
    position:fixed;
    width:56px;height:56px;
    transform:translate(-50%,-50%);
    border-radius:50%;
    border:2.5px solid var(--accent);
    z-index:1201;
    pointer-events:none;
    animation:flyRing .5s ease-out forwards;
}
@keyframes flyRing{
    from{opacity:1;transform:translate(-50%,-50%) scale(.4)}
    to{opacity:0;transform:translate(-50%,-50%) scale(1.6)}
}

/* ===== CART ===== */
.pos-cart{display:none;flex-direction:column;background:linear-gradient(180deg,rgba(24,25,38,.92),rgba(15,16,27,.94));backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-top:1px solid rgba(255,255,255,.07);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}
#viewCaja .panel-container{max-width:1180px}
.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)}
.panel-toolbar .pt-title-block{display:flex;flex-direction:column;gap:.15rem;flex:1;min-width:0}
.panel-toolbar .pt-title-block h2{flex:0 0 auto}
.pt-sub{font-size:.72rem;color:var(--text-3);font-weight:500;line-height:1.35}
.panel-toolbar a.btn-sm{text-decoration:none}
.btn-sm-indigo{background:#6366f1;color:#fff}
.btn-sm-indigo:hover{background:#4f52e0}
.btn-sm-cyan{background:#0891b2;color:#fff}
.btn-sm-cyan:hover{background:#077a96}
.cfg-group-title{display:flex;align-items:center;gap:.5rem;font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--text-3);margin:1.25rem 0 .55rem}
.cfg-group-title:first-of-type{margin-top:0}
.cfg-group-title i{color:var(--accent);font-size:.85rem}
.pt-filters{display:flex;gap:.35rem;flex-wrap:wrap;align-items:center}
.po-status-pills{display:flex;gap:2px;background:var(--bg-2);border-radius:var(--r);padding:3px;border:1px solid var(--border)}
.po-pill{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:calc(var(--r) - 2px);border:none;background:transparent;color:var(--text-3);font-size:.76rem;font-weight:500;cursor:pointer;transition:all .15s;line-height:1.2;white-space:nowrap}
.po-pill:hover{color:var(--text-1);background:var(--bg-3)}
.po-pill.active{background:var(--accent);color:#fff;box-shadow:0 1px 3px rgba(99,102,241,.3)}
.po-pill-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.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)}
.btn-filter-borrador{background:#0891b2;color:#fff}
.btn-filter-borrador:hover{background:#067a96}
.btn-filter-borrador.active{background:#0891b2;color:#fff;box-shadow:0 0 0 2px #fff,0 0 0 4px #0891b2}
.btn-filter-recibida{background:#ca8a04;color:#fff}
.btn-filter-recibida:hover{background:#a16207}
.btn-filter-recibida.active{background:#ca8a04;color:#fff;box-shadow:0 0 0 2px #fff,0 0 0 4px #ca8a04}
.btn-filter-parcial{background:#c2410c;color:#fff}
.btn-filter-parcial:hover{background:#9a3412}
.btn-filter-parcial.active{background:#c2410c;color:#fff;box-shadow:0 0 0 2px #fff,0 0 0 4px #c2410c}
.btn-filter-pagada{background:#16a34a;color:#fff}
.btn-filter-pagada:hover{background:#15803d}
.btn-filter-pagada.active{background:#16a34a;color:#fff;box-shadow:0 0 0 2px #fff,0 0 0 4px #16a34a}
.btn-filter-sincancelar{background:#7f1d1d;color:#fff}
.btn-filter-sincancelar:hover{background:#6b1a1a}
.btn-filter-sincancelar.active{background:#7f1d1d;color:#fff;box-shadow:0 0 0 2px #fff,0 0 0 4px #7f1d1d}
.btn-filter-anulada{background:#dc2626;color:#fff}
.btn-filter-anulada:hover{background:#b91c1c}
.btn-filter-anulada.active{background:#dc2626;color:#fff;box-shadow:0 0 0 2px #fff,0 0 0 4px #dc2626}

/* 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:.6rem;margin-bottom:.9rem}
.kpi-card{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r);padding:.75rem;display:flex;align-items:center;gap:.6rem;box-shadow:var(--shadow-soft)}
.kpi-card.clickable,.is-card.clickable{cursor:pointer;transition:transform .12s var(--ease),border-color .15s var(--ease),background .15s var(--ease),box-shadow .15s}
.kpi-card.clickable:hover,.is-card.clickable:hover{border-color:var(--accent);background:var(--bg-3);transform:translateY(-1px);box-shadow:var(--shadow-tint)}
.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)}

.tab-content{display:none}
.tab-content.active{display:block}

/* Report table (definición consolidada en "Tabla de reportes", abajo) */
.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}

/* Utilidades de alineación y color de texto */
.text-right{text-align:right}
.text-center{text-align:center}
.text-2{color:var(--text-2)}

/* ===== 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-card.clickable{cursor:pointer}
.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,.caja-movimientos-card,.caja-mesas-card,.caja-turnos-card,.caja-vendedor-card,.lic-section{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}
.caja-full{grid-column:1/-1}
.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;min-height:44px;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.primary{background:var(--accent);color:#fff}
.btn-action.primary:hover{background:var(--accent-h)}
.btn-action.success{background:var(--green);color:#fff}
.btn-action.danger{background:var(--red);color:#fff}
.btn-action.wa{background:#25d366;color:#fff}
.btn-action.wa:hover{background:#1fb959}
.btn-action.link{background:var(--blue);color:#fff}
.btn-action.link:hover{background:#2ba7e8}
.btn-action.hora{background:var(--yellow);color:#1a1b28}
.btn-action.hora:hover{background:#e6ad05}
.btn-action.anticipo{background:var(--accent);color:#fff}
.btn-action.anticipo:hover{background:var(--accent-h)}

.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}
.caja-closed-badge.cb-danger{background:rgba(255,59,92,.15);color:var(--red)}
.caja-status-meta{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--text-2);line-height:1.4}
.caja-status-meta i{color:var(--accent);font-size:.85rem}
.caja-alert-msg{font-size:.82rem;color:var(--text-1);margin:.6rem 0;line-height:1.5}

.mvt-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.12rem .45rem;border-radius:var(--r-sm);font-size:.68rem;font-weight:700;white-space:nowrap}
.mvt-pos{background:var(--green-bg);color:var(--green)}
.mvt-neg{background:rgba(255,59,92,.14);color:var(--red)}
.aud-rol{display:inline-block;margin-left:.3rem;padding:.05rem .4rem;border-radius:var(--r-sm);background:var(--bg-3);border:1px solid var(--border);color:var(--text-3);font-size:.6rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em}

/* ===== MODALS ===== */
.modal-overlay{position:fixed;inset:0;background:rgba(10,10,26,.7);display:none;align-items:flex-end;justify-content:center;z-index:200;padding:0;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
#modalNuevoCliente{z-index:210}
/* ── Consultar RIF bar ── */
.cl-rif-bar{display:flex;gap:.5rem;align-items:stretch;margin-bottom:.75rem}
.cl-rif-input-wrap{flex:1;position:relative;display:flex;align-items:center;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r);padding:0 .6rem;transition:border-color .2s}
.cl-rif-input-wrap:focus-within{border-color:var(--accent)}
.cl-rif-icon{color:var(--text-3);font-size:.82rem;margin-right:.5rem;flex-shrink:0}
.cl-rif-input-wrap .input-dark{background:transparent;border:none;padding:.5rem 0;font-size:.85rem;width:100%}
.cl-rif-input-wrap .input-dark:focus{box-shadow:none}
.cl-rif-status{position:absolute;right:.6rem;top:50%;transform:translateY(-50%);font-size:.85rem;display:none}
.cl-rif-status.ok{display:block;color:var(--green)}
.cl-rif-status.fail{display:block;color:var(--red)}
.cl-rif-status.loading{display:block;color:var(--accent);animation:spin .8s linear infinite}
@keyframes spin{to{transform:translateY(-50%) rotate(360deg)}}
.cl-rif-btn{flex-shrink:0;padding:.5rem .85rem;font-size:.78rem;white-space:nowrap;display:flex;align-items:center;gap:.35rem}
.cl-rif-btn:disabled{opacity:.5;cursor:not-allowed}
.cl-rif-btn i{font-size:.8rem}
.cl-rif-result{padding:.55rem .7rem;border-radius:var(--r);font-size:.78rem;line-height:1.45;margin-bottom:.6rem;display:flex;align-items:flex-start;gap:.45rem;animation:viewIn .15s ease}
.cl-rif-result.ok{background:rgba(0,210,106,.1);border:1px solid rgba(0,210,106,.25);color:var(--green)}
.cl-rif-result.fail{background:rgba(255,59,92,.1);border:1px solid rgba(255,59,92,.25);color:var(--red)}
.cl-rif-result i{margin-top:.05rem;flex-shrink:0}
/* ── Consultar RIF – CAPTCHA ── */
.cl-captcha{margin-bottom:.6rem;border:1px solid var(--border);border-radius:var(--r);padding:.6rem;background:var(--bg-2);animation:viewIn .2s ease}
.cl-captcha-label{font-size:.72rem;color:var(--text-3);margin-bottom:.45rem;display:flex;align-items:center;gap:.35rem}
.cl-captcha-label i{color:var(--accent);font-size:.78rem}
.cl-captcha-body{display:flex;flex-direction:column;gap:.45rem}
.cl-captcha-img{max-width:220px;height:auto;border:1px solid var(--border);border-radius:var(--r);background:#fff;cursor:pointer}
.cl-captcha-img:hover{opacity:.85}
.cl-captcha-input-row{display:flex;gap:.4rem;align-items:center}
.cl-captcha-input-row .input-dark{flex:1;min-width:0;font-size:.82rem;padding:.4rem .55rem}
.cl-captcha-input-row .btn-action{padding:.4rem .7rem;font-size:.72rem;white-space:nowrap}
/* ── Divider ── */
.cl-divider{display:flex;align-items:center;gap:.6rem;margin:.65rem 0 .75rem}
.cl-divider::before,.cl-divider::after{content:'';flex:1;height:1px;background:var(--border)}
.cl-divider span{font-size:.68rem;color:var(--text-3);font-weight:700;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}
#modalPago{z-index:250}
#modalTicket{z-index:300}
.modal-overlay.show{display:flex;animation:viewIn .2s var(--ease)}
.modal-box{background:linear-gradient(180deg,rgba(26,27,40,.96),rgba(17,18,29,.98));backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.08);border-radius:var(--r-lg) var(--r-lg) 0 0;width:100%;max-height:92dvh;display:flex;flex-direction:column;overscroll-behavior:contain}
.modal-sm{max-width:440px}
.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;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}
.mb-footer{padding:.6rem 1rem;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:.4rem;flex-shrink:0;flex-wrap:wrap}
/* Modal de confirmación personalizado */
#_sysConfirmModal{z-index:400}
.cm-box{max-width:380px}
.cm-body{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1.5rem 1.25rem 1.25rem;text-align:center}
.cm-icon-wrap{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}
.cm-lines{display:flex;flex-direction:column;gap:.35rem;width:100%}
.cm-line:first-child{font-size:.95rem;font-weight:700;color:var(--text-0)}
.cm-line{font-size:.84rem;color:var(--text-2);line-height:1.45}
.cm-line:last-child{font-size:.78rem;color:var(--text-3);font-style:italic}
.form-group{margin-bottom:.75rem}
.form-group label{display:block;font-size:.8rem;color:var(--text-2);margin-bottom:.3rem}
.form-group.invalid .input-dark,.form-group.invalid input[type=text],.form-group.invalid input[type=number],.form-group.invalid input[type=tel],.form-group.invalid textarea,.form-group.invalid select{border-color:var(--red)!important;box-shadow:0 0 0 1px rgba(255,59,92,.35)}
.form-group.invalid label{color:var(--red)}
.field-error{display:none;align-items:center;gap:.3rem;font-size:.72rem;font-weight:600;color:var(--red);margin-top:.3rem;animation:viewIn .15s ease}
.form-group.invalid .field-error{display:flex}

.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 .9rem;border-radius:var(--r);font-size:.82rem;font-weight:600;color:#fff;display:flex;align-items:center;gap:.5rem;animation:toastIn .3s var(--ease),toastOut .3s var(--ease) 2.7s;box-shadow:0 10px 26px -8px rgba(10,10,26,.6),inset 0 1px 0 rgba(255,255,255,.14);max-width:280px;pointer-events:auto;background:rgba(24,25,38,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.12)}
.toast i{font-size:.95rem;flex-shrink:0}
.toast span{line-height:1.3}
.toast.success{background:rgba(46,204,113,.22);color:#63e6a3;border-color:rgba(46,204,113,.5)}
.toast.error{background:rgba(255,59,92,.22);color:#ff9ab0;border-color:rgba(255,59,92,.5)}
.toast.warning{background:rgba(230,81,0,.22);color:#ffb28a;border-color:rgba(230,81,0,.5)}
.toast.info{background:rgba(56,132,255,.22);color:#a8c8ff;border-color:rgba(56,132,255,.5)}
@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);animation:viewIn .3s cubic-bezier(.22,1,.36,1)}
.empty-state i{font-size:2.5rem;margin-bottom:.6rem;opacity:.4;display:inline-block;animation:emptyFloat 3s ease-in-out infinite}
.empty-state p{font-size:.9rem}
@keyframes emptyFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}

/* ===== RESPONSIVE ===== */
@media(min-width:768px){
    html{font-size:15px}
    .header-nav{display:flex}
    .ha-icon#btnHeaderMenu{display:none}
    /* tablet: botón de dos líneas (icono + etiqueta) — legible en táctiles sin hover */
    .header-nav .hn-btn{flex-direction:column;gap:.12rem;padding:.28rem .55rem;font-size:.68rem;line-height:1.15}
    .header-nav .hn-btn i{font-size:1.15rem}
    .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(auto-fill,minmax(170px,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-admin-cards{grid-template-columns:repeat(4,1fr)}
    .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}
    #branchChipName{display:none}
    .branch-chip{padding:.25rem .4rem;gap:.25rem}

    /* Card con imagen en móvil: thumbnail izquierdo + contenido derecho */
    .product-card.has-img{
        display:grid;
        grid-template-columns:76px 1fr;
        grid-template-rows:auto 1fr auto;
        gap:.5rem;
        padding:.5rem;
        min-height:108px;
    }
    /* Monograma: banda más baja en móvil para cards sin imagen más compactas */
    .product-card .pc-media-mono{aspect-ratio:16/6}
    .pc-mono{font-size:1.9rem}
    /* Media: columna 1, abarca las 3 filas */
    .product-card.has-img .pc-media{
        grid-column:1;
        grid-row:1 / 4;
        aspect-ratio:auto;
        margin:0;
        border-radius:calc(var(--r-lg) - 3px);
    }
    .product-card.has-img .pc-chip{top:.3rem;right:.3rem;font-size:.52rem;padding:.16rem .34rem}
    /* Cuerpo: columna 2, fila 1 */
    .product-card.has-img .pc-body{grid-column:2;grid-row:1;min-width:0;gap:.18rem}
    .product-card.has-img .pc-name{font-size:.8rem;line-height:1.2}
    .product-card.has-img .pc-desc{font-size:.64rem;line-height:1.25;-webkit-line-clamp:1}
    /* Footer: pegado al fondo (fila 3) */
    .product-card.has-img .pc-footer{grid-column:2;grid-row:3;padding-top:.4rem;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:44px;height:44px;min-width:44px;font-size:.78rem}
}
@media(min-width:1024px){
    .pos-cart{width:370px}
    /* When a full row of image cards collapses to image-height only, the
       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-media{aspect-ratio:auto;height:118px}
    .product-card.has-img{min-height:232px}
}
/* Nav icon-only (768–1199px): desplazamiento horizontal en vez de desbordarse.
   El tooltip pasa a ser un elemento fijo controlado por JS (initNavTooltips),
   porque un scroll container recortaría el tooltip CSS clásico. */
@media(min-width:768px) and (max-width:1199px){
    .header-nav .hn-btn{position:relative;flex-shrink:0}
    .header-nav{
        justify-content:flex-start;
        overflow-x:auto;
        overflow-y:hidden;
        scrollbar-width:none;
        -webkit-overflow-scrolling:touch;
        padding-right:.5rem;
        margin-left:.6rem;
        padding-left:.7rem;
        border-left:1px solid rgba(255,255,255,.07);
    }
    .header-nav::-webkit-scrollbar{display:none}
}
@media(min-width:1200px){
    .header-nav .hn-btn span{display:inline}
    .header-nav .hn-btn{flex-direction:row;padding:.4rem .65rem;gap:.35rem;font-size:.77rem}
    .header-nav .hn-btn i{font-size:1.1rem}
    .header-nav{gap:.15rem;margin-left:.75rem;padding-left:.9rem;border-left:1px solid rgba(255,255,255,.07)}
    .header-nav{overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch;justify-content:flex-start}
    .header-nav::-webkit-scrollbar{display:none}
}
/* Desktop compacto (1200-1399px): el admin tiene 9 botones (incluye Métricas);
   se compacta para que el último botón no quede oculto tras el usuario activo. */
@media(min-width:1200px) and (max-width:1399px){
    .header-nav .hn-btn{flex-direction:row;padding:.32rem .5rem;gap:.28rem;font-size:.72rem}
    .header-nav .hn-btn i{font-size:1rem}
}
@media(min-width:1280px){
    .pos-cart{width:380px}
}
@media(min-width:1440px){
    .pos-cart{width:400px}
}

/* ===== LOGIN SCREEN ===== */
.login-screen{position:fixed;inset:0;z-index:9999;background:radial-gradient(600px 420px at 18% 10%,rgba(255,107,53,.13),transparent 62%),radial-gradient(520px 380px at 84% 16%,rgba(99,102,241,.11),transparent 60%),var(--bg-1);display:flex;align-items:center;justify-content:center}
.login-box{background:linear-gradient(180deg,rgba(26,27,40,.9),rgba(17,18,29,.94));backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.08);border-radius:var(--r-lg);padding:2rem;width:90%;max-width:340px;text-align:center;box-shadow:0 18px 48px -16px rgba(10,10,26,.8),inset 0 1px 0 rgba(255,255,255,.05)}
.login-logo{margin-bottom:1rem}
.login-logo i{width:64px;height:64px;line-height:64px;border-radius:18px;background:linear-gradient(135deg,var(--accent),#ff9966);color:#fff;font-size:1.7rem;box-shadow:0 8px 26px -8px rgba(255,107,53,.6);animation:splashGlow 3s ease-in-out infinite}
.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);animation:dotPop .3s cubic-bezier(.34,1.56,.64,1)}
@keyframes dotPop{from{transform:scale(.4)}to{transform:scale(1)}}
.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:hover{background:var(--bg-4);color:var(--text-0);transform:translateY(-1px)}
.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)}
.role-badge.cajera-role{background:var(--blue-bg,rgba(56,189,248,.15));color:var(--blue)}

/* ===== BRANCH CHIP ===== */
.branch-chip{position:relative;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);cursor:default}
.branch-chip i:first-child{color:var(--green);font-size:.85rem}
.branch-arrow{font-size:.6rem!important;color:var(--text-3)!important}
.branch-dropdown{position:absolute;top:calc(100% + 6px);right:0;min-width:200px;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:0 8px 24px rgba(0,0,0,.4);z-index:9999;overflow:hidden}
.branch-dropdown .bd-item{display:flex;align-items:center;gap:.5rem;padding:.55rem .75rem;font-size:.8rem;color:var(--text-1);cursor:pointer;transition:background .15s}
.branch-dropdown .bd-item:hover{background:var(--bg-hover)}
.branch-dropdown .bd-item.active{color:var(--green);font-weight:600}
.branch-dropdown .bd-item.active::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--green);flex-shrink:0}
.branch-dropdown .bd-item:not(.active)::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--bg-4);flex-shrink:0}

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

/* ===== ANEXO A CUENTA (Agregar a orden existente) ===== */
.ord-edicion-banner{display:none;align-items:center;gap:.5rem;margin:.4rem .6rem;padding:.45rem .6rem;border-radius:var(--r-sm);background:linear-gradient(90deg,rgba(56,189,248,.14),rgba(99,230,190,.08));border:1px solid rgba(56,189,248,.35);color:var(--text-1);font-size:.78rem}
.ord-edicion-banner>i{color:#38bdf8;flex-shrink:0}
.ord-edicion-banner span{min-width:0}
.ord-edicion-banner .oeb-cliente{font-weight:700;color:#7dd3fc}
.ord-edicion-banner .oeb-ord{color:var(--text-3);font-size:.7rem;margin-left:auto;flex-shrink:0}
.ord-edicion-banner .oeb-cancel{background:transparent;border:none;color:var(--text-3);font-size:1.05rem;line-height:1;cursor:pointer;flex-shrink:0;padding:0 .1rem}
.ord-edicion-banner .oeb-cancel:hover{color:var(--red)}


/* ===== 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}
.ci-qchips{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.3rem}
.chip-q{padding:.18rem .55rem;font-size:.66rem;font-weight:600;line-height:1.3;background:rgba(255,183,63,.12);border:1px solid var(--yellow);border-radius:999px;color:var(--yellow);cursor:pointer;transition:background .15s,color .15s,transform .1s;white-space:nowrap}
.chip-q:hover{background:var(--yellow);color:#17151a}
.chip-q:active{transform:scale(.95)}

/* ===== COMENTARIOS RÁPIDOS (Inventario → Comentarios) ===== */
.inv-empty{padding:2rem 1rem;text-align:center;color:var(--text-3);font-size:.85rem;border:1px dashed var(--border,#334155);border-radius:10px}
.com-item{display:flex;align-items:center;gap:.6rem;padding:.65rem .8rem;margin-bottom:.45rem;background:var(--bg-1);border:1px solid var(--border,#334155);border-radius:10px}
.com-item.com-inactivo{opacity:.55}
.com-texto{flex:1;font-size:.85rem;color:var(--text-1);word-break:break-word}
.com-badge{font-size:.64rem;font-weight:700;padding:.15rem .5rem;border-radius:999px;white-space:nowrap}
.com-badge.com-on{background:rgba(46,204,113,.15);color:#2ecc71}
.com-badge.com-off{background:rgba(148,163,184,.15);color:#94a3b8}
.com-acciones{display:flex;gap:.4rem;white-space:nowrap}
.btn-inv-sm{font-size:.7rem;padding:.28rem .6rem;border-radius:7px;background:var(--bg-2);color:var(--text-1);border:1px solid var(--border,#334155);cursor:pointer;transition:background .15s}
.btn-inv-sm:hover{background:var(--bg-3)}
.btn-inv-sm.btn-inv-danger{color:#f87171;border-color:rgba(248,113,113,.4)}
.btn-inv-sm.btn-inv-danger:hover{background:rgba(248,113,113,.12)}
.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)}
.est-devuelta{background:rgba(139,92,246,.15);color:#a78bfa}

/* ===== 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{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.admin-card{display:flex;align-items:center;gap:.85rem;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-lg);padding:1rem 1.05rem;cursor:pointer;transition:transform .18s cubic-bezier(.22,1,.36,1),border-color .18s var(--ease),background .18s;text-align:left;position:relative;overflow:hidden}
.admin-card:hover{border-color:var(--accent);background:var(--bg-3);transform:translateY(-2px)}
.admin-card:active{transform:scale(.98)}
.admin-card-ic{width:44px;height:44px;border-radius:13px;display:flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0;background:rgba(255,107,53,.12);color:var(--accent)}
.admin-card-ic.ic-green{background:rgba(0,210,106,.12);color:var(--green)}
.admin-card-ic.ic-blue{background:rgba(56,132,255,.12);color:#5b8cff}
.admin-card-ic.ic-yellow{background:rgba(255,190,11,.12);color:var(--yellow)}
.admin-card-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:.12rem}
.admin-card-tx span{font-weight:700;font-size:.86rem;color:var(--text-0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.admin-card-tx small{font-size:.71rem;color:var(--text-2);line-height:1.3;display:block}
.admin-card-arr{color:var(--text-3);font-size:.8rem;opacity:.6;transition:all .18s}
.admin-card:hover .admin-card-arr{opacity:1;transform:translateX(2px);color:var(--accent)}

/* ===== 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:var(--font-mono)}
.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{transform:translateX(500%)}}
.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:0}
.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}

.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)}
.compra-anulada{opacity:.55}
.compra-anulada .cc-num{text-decoration:line-through}

@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;justify-content:space-between;gap:.5rem;padding:.3rem 0;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(--text-2);font-size:.8rem;font-weight:600;white-space:nowrap;cursor:default}
.propina-row input{width:90px;text-align:right}
.propina-row .input-dark{width:7rem;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 ===== */
/* ===== REPORTE VENDEDOR ===== */
.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:var(--r-input);padding:.4rem .55rem;cursor:pointer;font-size:.85rem;flex-shrink:0;min-height:40px;min-width:40px;transition:background .15s,color .15s,border-color .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% + 4px);background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r);z-index:200;box-shadow:0 14px 34px rgba(10,10,26,.55);max-height:300px;overflow-y:auto;padding:.35rem}
.csf-item{display:flex;align-items:center;gap:.6rem;padding:.5rem .55rem;cursor:pointer;border-radius:var(--r-sm);transition:background .12s}
.csf-item:hover,.csf-item.csf-active{background:var(--bg-3)}
.csf-item.csf-active{box-shadow:inset 0 0 0 1px var(--accent)}
.csf-item-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.1rem}
.csf-item-body strong{font-size:.86rem;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.csf-item-body small{font-size:.74rem;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.csf-frec{flex-shrink:0;font-size:.68rem;font-weight:700;color:var(--accent);background:var(--accent-bg);border-radius:var(--r-full);padding:.18rem .5rem;display:inline-flex;align-items:center;gap:.25rem}
.csf-avatar{width:36px;height:36px;border-radius:50%;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;color:hsl(var(--ah) 85% 72%);background:hsl(var(--ah) 55% 18%);border:1px solid hsl(var(--ah) 60% 30%);user-select:none}
.csf-avatar.sm{width:30px;height:30px;font-size:.62rem}
.csf-selected{display:flex;align-items:center;gap:.5rem;background:rgba(99,230,190,.06);border:1px solid rgba(99,230,190,.25);border-radius:var(--r);padding:.4rem .6rem;margin-top:.4rem;font-size:.82rem;color:var(--text-1)}
.csf-chip-body{flex:1;display:flex;align-items:center;gap:.5rem;min-width:0}
.csf-chip-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.05rem;line-height:1.15}
.csf-chip-info strong{font-size:.84rem;color:var(--text-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.csf-chip-info small{font-size:.7rem;color:var(--text-2)}
.csf-chip-actions{display:flex;align-items:center;gap:.25rem;flex-shrink:0}
.csf-chip-act{width:30px;height:30px;border-radius:var(--r-sm);display:inline-flex;align-items:center;justify-content:center;background:var(--surface-3);border:1px solid var(--border);color:var(--text-2);cursor:pointer;font-size:.72rem;text-decoration:none;transition:background .12s,color .12s,border-color .12s}
.csf-chip-act:hover{background:var(--bg-3);color:var(--accent);border-color:var(--accent)}
.csf-chip-act.wa:hover{color:var(--green);border-color:rgba(52,211,153,.5)}
.csf-clear{background:none;border:none;color:var(--text-3);cursor:pointer;font-size:1.1rem;padding:0 .2rem;line-height:1;flex-shrink:0}
.csf-clear:hover{color:var(--red)}
.csf-empty{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:1rem .5rem;color:var(--text-3);font-size:.8rem;text-align:center}
.csf-empty i{font-size:1.4rem;opacity:.5;margin-bottom:.2rem}
.csf-create{display:flex;align-items:center;gap:.5rem;padding:.55rem .6rem;margin-top:.25rem;border:1px dashed var(--border);border-radius:var(--r-sm);color:var(--accent);font-size:.82rem;font-weight:600;cursor:pointer;transition:background .12s,border-color .12s}
.csf-create:hover{background:var(--accent-bg);border-color:rgba(255,107,53,.5)}

/* ===== CUENTA INDIVIDUAL: campo cliente más llamativo ===== */
.cci-badge{display:none;margin-left:.35rem;padding:.1rem .5rem;border-radius:var(--r-full);background:linear-gradient(135deg,rgba(45,212,191,.22),rgba(14,165,233,.22));border:1px solid rgba(45,212,191,.5);color:#5eead4;font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;vertical-align:middle}
#cartCustomerInfo.individual-mode .cci-badge{display:inline-block;animation:cci-pulse 2.2s ease-in-out infinite}
@keyframes cci-pulse{0%,100%{box-shadow:0 0 0 0 rgba(45,212,191,.35)}50%{box-shadow:0 0 0 5px rgba(45,212,191,0)}}
#cartCustomerInfo.individual-mode .csf-input{background:linear-gradient(90deg,rgba(45,212,191,.14),rgba(14,165,233,.12));border:1.5px solid #2dd4bf;box-shadow:0 0 0 3px rgba(45,212,191,.14),0 0 14px rgba(45,212,191,.28);color:var(--text-0);caret-color:#2dd4bf;font-size:.9rem;padding:.5rem .65rem}
#cartCustomerInfo.individual-mode .csf-input:focus{border-color:#7dd3fc;box-shadow:0 0 0 3px rgba(125,211,252,.22),0 0 18px rgba(45,212,191,.45)}
#cartCustomerInfo.individual-mode .csf-input::placeholder{color:rgba(255,255,255,.55)}
#cartCustomerInfo.individual-mode .csf-add-btn{border-color:rgba(45,212,191,.5);color:#5eead4;background:rgba(45,212,191,.1)}
#cartCustomerInfo.individual-mode .csf-add-btn:hover{background:linear-gradient(135deg,#14b8a6,#0ea5e9);color:#fff;border-color:transparent}
#cartCustomerInfo.individual-mode .csf-selected{border-color:rgba(45,212,191,.6);background:rgba(45,212,191,.1)}
.cobro-cliente-row{margin-bottom:.75rem;padding:.6rem .65rem;background:var(--bg-2);border-radius:var(--r);border:1px solid var(--border)}
.cobro-cliente-row > label{font-weight:600}

/* ===== 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)}
.cl-avatar{display:inline-flex;width:32px;height:32px;border-radius:50%;align-items:center;justify-content:center;font-size:.68rem;font-weight:700;color:hsl(var(--ah) 85% 72%);background:hsl(var(--ah) 55% 18%);border:1px solid hsl(var(--ah) 60% 30%);margin-right:.5rem;vertical-align:middle}
.cl-tel{color:var(--blue);text-decoration:none;font-weight:600;display:inline-flex;align-items:center;gap:.3rem}
.cl-tel:hover{text-decoration:underline}
/* Clientes: la tabla pasa a tarjetas en pantallas pequeñas */
@media(max-width:640px){
    .clientes-table thead{display:none}
    .clientes-table,.clientes-table tbody{display:block}
    .clientes-table tr{display:grid;grid-template-columns:1fr auto;gap:.3rem .6rem;padding:.65rem .7rem;margin-bottom:.55rem;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r)}
    .clientes-table tr:hover td{background:transparent}
    .clientes-table td{display:flex;justify-content:space-between;align-items:center;gap:.5rem;border:none;padding:.14rem 0;min-width:0}
    .clientes-table td[data-label]::before{content:attr(data-label);font-size:.68rem;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;flex-shrink:0}
    .clientes-table td[data-label="Nombre"]{grid-column:1/-1}
    .clientes-table td[data-label="Nombre"]::before{content:none}
    .clientes-table td[data-label="Teléfono"]{justify-content:flex-start}
    .clientes-table .tc-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:.35rem;margin-top:.25rem}
    .clientes-table .tc-actions::before{content:none}
    .btn-hist,.btn-edit-c{min-height:36px;padding:.3rem .65rem}
}

/* 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:flex;flex-direction:column;gap:.9rem;padding:.5rem 0}
.mesa-card{position:relative;border-radius:var(--r);border:2px solid;padding:.85rem .75rem .65rem;cursor:pointer;transition:transform .18s var(--ease),box-shadow .18s var(--ease),border-color .18s var(--ease),background .18s var(--ease);text-align:center;display:flex;flex-direction:column;align-items:center;gap:.3rem;min-height:136px;justify-content:flex-start;user-select:none;outline:none;background-clip:padding-box}
.mesa-card:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(10,10,26,.45)}
.mesa-card:active{transform:translateY(0) scale(.97)}
.mesa-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mesa-card.mesa-libre{border-color:rgba(52,211,153,.4);background:linear-gradient(180deg,rgba(52,211,153,.10),rgba(52,211,153,.03))}
.mesa-card.mesa-ocupada{border-color:rgba(245,158,11,.5);background:linear-gradient(180deg,rgba(245,158,11,.12),rgba(245,158,11,.04))}
/* Urgencia por tiempo de espera — la espera larga eleva la jerarquía de la tarjeta */
.mesa-card.mesa-wait-long{border-color:rgba(255,190,11,.85);box-shadow:0 0 0 1px rgba(255,190,11,.3),0 10px 26px rgba(10,10,26,.45)}
.mesa-card.mesa-wait-long:hover{box-shadow:0 0 0 1px rgba(255,190,11,.3),0 14px 30px rgba(10,10,26,.5)}
.mesa-card.mesa-wait-crit{border-color:rgba(255,59,92,.9);background:linear-gradient(180deg,rgba(255,59,92,.14),rgba(255,59,92,.05));box-shadow:0 0 0 1px rgba(255,59,92,.38),0 10px 26px rgba(10,10,26,.45)}
.mesa-card.mesa-wait-crit:hover{box-shadow:0 0 0 1px rgba(255,59,92,.38),0 14px 30px rgba(10,10,26,.5)}
/* Selección activa */
.mesa-card.selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent),0 0 24px var(--shadow-tint);transform:translateY(-2px)}
.mesa-card.selected::after{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;top:.45rem;right:.45rem;width:20px;height:20px;border-radius:50%;background:var(--accent);color:#fff;font-size:.6rem;display:flex;align-items:center;justify-content:center;z-index:2}

/* Dot de actividad — pulsa en mesas con comandas activas */
.mc-dot{--pulse:rgba(255,190,11,.55);position:absolute;top:.55rem;right:.55rem;width:9px;height:9px;border-radius:50%;background:currentColor;color:var(--yellow);z-index:2}
.mesa-card.mesa-wait-crit .mc-dot{--pulse:rgba(255,59,92,.55);color:var(--red)}
.mesa-card.selected .mc-dot{display:none}

.mc-qr{position:absolute;top:.45rem;left:.45rem;width:24px;height:24px;border-radius:.45rem;border:1px solid var(--border);background:var(--surface-3);color:var(--text-2);font-size:.66rem;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:3;transition:all .15s var(--ease);opacity:.85}
.mc-qr:hover{color:var(--accent);border-color:rgba(255,107,53,.5);background:var(--accent-bg);opacity:1}
.mesa-card.selected .mc-qr{display:none}

/* Indicador "R" de reserva de hoy en la vista Mesas */
.mc-reserva{display:block;max-width:100%;padding:.1rem .45rem;border-radius:.45rem;border:1px solid rgba(255,107,53,.45);background:var(--accent-bg);color:var(--accent);font-size:.6rem;font-weight:700;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.3}
.mc-reserva i{font-size:.6rem;margin-right:.15rem}
.mesa-card.mesa-reservada{border-color:rgba(255,107,53,.55)!important;box-shadow:0 0 0 1px rgba(255,107,53,.18),0 10px 26px rgba(10,10,26,.45)}
.mesa-card.mesa-reservada .mc-icon-chip{background:rgba(255,107,53,.14);border-color:rgba(255,107,53,.4);color:var(--accent)}
.mesa-card.mesa-reservada:not(.selected) .mc-dot{display:none}
.mesa-card.mesa-ocupada.mesa-reservada .mc-status{color:var(--accent)}
@media (prefers-reduced-motion: no-preference){
    .mesa-card.mesa-ocupada:not(.selected) .mc-dot{animation:mcDot 2.2s var(--ease) infinite}
}
@keyframes mcDot{0%,100%{box-shadow:0 0 0 0 var(--pulse)}70%{box-shadow:0 0 0 6px transparent}}

/* Chip con la forma de la mesa — la identidad visual vive en el icono, no en el rectángulo */
.mc-icon-chip{width:44px;height:44px;border-radius:var(--r-sm);background:var(--surface-3);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;margin-bottom:.15rem;flex-shrink:0;transition:border-color .18s,background .18s}
.mesa-card.mesa-libre .mc-icon-chip{background:rgba(52,211,153,.14);border-color:rgba(52,211,153,.35);color:var(--green)}
.mesa-card.mesa-ocupada .mc-icon-chip{background:rgba(245,158,11,.16);border-color:rgba(245,158,11,.4);color:var(--yellow)}
.mesa-card.mesa-wait-crit .mc-icon-chip{background:rgba(255,59,92,.16);border-color:rgba(255,59,92,.42);color:var(--red)}
.mesa-card.mesa-redonda .mc-icon-chip{border-radius:50%}
.mesa-card.mesa-rectangular .mc-icon-chip{width:56px;border-radius:var(--r-input)}
.mesa-card.selected .mc-icon-chip{background:var(--accent-bg);border-color:rgba(255,107,53,.5);color:var(--accent)}
.mc-icon-chip i{font-size:1.2rem}
.mesa-card.mesa-concepto .mc-icon-chip{color:var(--chip-color);background:var(--surface-3);border-color:var(--border)}
@supports (background:color-mix(in srgb,#fff 50%,transparent)){
    .mesa-card.mesa-concepto .mc-icon-chip{background:color-mix(in srgb,var(--chip-color) 14%,transparent);border-color:color-mix(in srgb,var(--chip-color) 38%,transparent)}
}
.mesa-card.mesa-concepto .mc-icon-chip i{font-size:1.35rem}

.mc-nombre{font-size:.95rem;font-weight:700;color:var(--text-1);line-height:1.15}
.mc-cap{font-size:.7rem;color:var(--text-3)}
.mc-status{font-size:.74rem;font-weight:600;letter-spacing:.01em}
.mesa-libre .mc-status{color:var(--green)}
.mesa-ocupada .mc-status{color:var(--yellow)}
.mesa-wait-crit .mc-status{color:var(--red)}
.mc-orden{font-size:.7rem;color:var(--text-3);max-width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Pie de tarjeta: tiempo de espera + monto acumulado */
.mc-foot{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;margin-top:auto;padding-top:.5rem;border-top:1px solid var(--border)}
.mc-tiempo{font-size:.72rem;font-weight:600;color:var(--yellow);display:inline-flex;align-items:center;gap:.3rem}
.mc-tiempo-muted{color:var(--text-3);font-weight:500}
.mesa-wait-crit .mc-tiempo{color:var(--red)}
.mc-total{font-size:.8rem;font-weight:700;color:var(--text-0);font-family:var(--font-mono)}

/* Entrada escalonada del mapa de mesas (espejo de cardIn en productos) */
@media (prefers-reduced-motion: no-preference){
    .conceptos-row .mesa-card:not(.skeleton),
    .mesas-grid-inner .mesa-card:not(.skeleton){
        animation:mesaIn .38s cubic-bezier(.22,1,.36,1) backwards;
        animation-delay:calc(min(var(--i,0),16) * 30ms);
    }
}
@keyframes mesaIn{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}

/* ===== 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:#000;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(10,10,26,.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}

/* ===== CONDUCTOR DE MESAS ===== */
.cd-nav-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}
.conductor-notif{background:linear-gradient(135deg,#7c2d12,#9a3412);border-color:var(--red)}
.conductor-notif .pln-icon{background:rgba(255,59,92,.2);color:var(--red)}
.conductor-notif .pln-ver{background:var(--red)}
.conductor-notif .pln-ver:hover{background:#ff5c73}
.conductor-summary{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:.9rem}
.cd-resumen{display:flex;gap:.6rem;flex-wrap:wrap;width:100%}
.cd-res-card{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:.55rem .8rem;min-width:92px;display:flex;flex-direction:column;gap:.1rem}
.cd-res-card strong{font-size:1.25rem;color:var(--text-1)}
.cd-res-card span{font-size:.68rem;color:var(--text-3)}
.cd-res-card.cd-r-total{border-color:var(--red)}
.cd-res-card.cd-r-total strong{color:var(--red)}
.cd-carga{background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:.55rem .8rem;flex:1;min-width:230px}
.cd-carga-title{font-size:.7rem;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em}
.cd-carga-row{display:flex;align-items:center;gap:.5rem;margin-top:.4rem;font-size:.78rem}
.cd-carga-row>span{min-width:110px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cd-carga-bar{flex:1;height:6px;background:var(--bg-1);border-radius:3px;overflow:hidden}
.cd-carga-bar div{height:100%;background:linear-gradient(90deg,var(--accent),#f97316);border-radius:3px;transition:width .4s ease}
.cd-carga-row b{min-width:20px;text-align:right;color:var(--text-2)}
.cd-muted{font-size:.76rem;color:var(--text-3);margin-top:.35rem}
.conductor-grid{display:flex;flex-direction:column;gap:.9rem}
.cd-section{background:var(--bg-2);border:1px solid var(--border);border-radius:14px;padding:.8rem}
.cd-section-head{display:flex;align-items:center;gap:.5rem;font-weight:700;font-size:.9rem;margin-bottom:.6rem}
.cd-section-head i{color:var(--accent)}
.cd-count{background:var(--accent);color:#fff;border-radius:10px;font-size:.7rem;font-weight:800;padding:.05rem .5rem}
.cd-empty{font-size:.8rem;color:var(--green);padding:.35rem 0;display:flex;gap:.4rem;align-items:center}
.cd-item{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .8rem;padding:.5rem .55rem;border:1px solid var(--border);border-radius:10px;margin-bottom:.5rem;background:var(--bg-1)}
.cd-item-main{font-size:.85rem;color:var(--text-1);display:flex;align-items:center;gap:.4rem}
.cd-item-meta{font-size:.72rem;color:var(--text-3);display:flex;align-items:center;gap:.35rem}
.cd-item-foot{margin-left:auto;display:flex;align-items:center;gap:.5rem}
.cd-chip{font-size:.66rem;font-weight:700;padding:.05rem .45rem;border-radius:8px;color:#fff}
.cd-chip.cd-cocina{background:#f59e0b}
.cd-chip.cd-barra{background:#3b82f6}
.cd-sug{font-size:.72rem;color:var(--text-2);display:inline-flex;align-items:center;gap:.3rem}
.cd-sug.cd-reasig{color:var(--red);font-weight:700}
.cd-updated{font-size:.72rem;color:var(--text-3)}
@media (max-width:640px){
    .cd-carga{min-width:100%}
    .cd-item-foot{margin-left:0;width:100%;justify-content:space-between}
}
.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(10,10,26,.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(10,10,26,.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}
}

/* ===== MODO DUEÑO (CONCIERGE DE OPERACIÓN) ===== */
.ow-container{padding:1.1rem 1.25rem 2rem;max-width:1400px;margin:0 auto}
.ow-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.1rem;flex-wrap:wrap;gap:.7rem}
.ow-title{display:flex;align-items:center;gap:.55rem;font-size:1.15rem;font-weight:700;color:var(--text-1)}
.ow-title i{color:var(--accent);font-size:1.05rem}
.ow-updated{font-size:.72rem;color:var(--text-3);font-style:italic;font-weight:500;margin-left:.4rem}
.ow-controls{display:flex;align-items:center;gap:.65rem}
.ow-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}
.ow-refresh:hover{border-color:var(--accent);color:var(--accent);transform:rotate(90deg)}

.ow-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.7rem;margin-bottom:1rem}
.ow-kpi{display:flex;align-items:center;gap:.7rem;padding:.8rem .95rem;border-radius:12px;background:rgba(255,255,255,.03);border:1px solid var(--border);transition:transform .2s,box-shadow .2s;cursor:default;min-width:0}
.ow-kpi:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(10,10,26,.25)}
.ow-kpi i{font-size:1.05rem;flex-shrink:0}
.ow-kpi b{font-size:1.05rem;font-weight:800;color:var(--text-1);line-height:1;display:block;white-space:nowrap}
.ow-kpi small{font-size:.66rem;color:var(--text-3);margin-top:.2rem;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ow-meta-gauge{grid-column:1/-1;display:flex;align-items:center;gap:.7rem;padding:.6rem .95rem;border-radius:12px;background:rgba(255,255,255,.03);border:1px solid var(--border)}
.ow-meta-track{flex:1;height:10px;border-radius:99px;background:rgba(255,255,255,.07);overflow:hidden}
.ow-meta-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),#ff9966);transition:width .6s ease}
.ow-meta-gauge>span{font-size:.75rem;color:var(--text-2);white-space:nowrap}

.ow-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.85rem}
.ow-panel{background:rgba(255,255,255,.03);border:1px solid var(--border);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .2s}
.ow-panel:hover{box-shadow:0 4px 24px rgba(10,10,26,.2)}
.ow-panel-head{display:flex;align-items:center;gap:.45rem;padding:.75rem 1rem;border-bottom:1px solid var(--border);background:rgba(255,255,255,.025);font-size:.85rem;font-weight:700;color:var(--text-1)}
.ow-panel-head i{color:var(--accent);font-size:.85rem}
.ow-panel-body{padding:.85rem 1rem;display:flex;flex-direction:column;gap:.55rem;flex:1}

.ow-bar{height:14px;border-radius:99px;background:rgba(255,255,255,.07);overflow:hidden}
.ow-bar-fill{height:100%;border-radius:99px;transition:width .6s ease}
.ow-bar-lbl{font-size:.8rem;font-weight:700;color:var(--text-1)}
.ow-sub{font-size:.72rem;color:var(--text-3);line-height:1.45}
.ow-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}
.ow-strip-item{background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:10px;padding:.6rem .7rem;text-align:center}
.ow-strip-item b{display:block;font-size:1rem;font-weight:800;color:var(--text-1);line-height:1}
.ow-strip-item span{display:block;font-size:.64rem;color:var(--text-3);margin-top:.3rem;text-transform:uppercase;letter-spacing:.03em;font-weight:500}
.ow-list{display:flex;flex-direction:column;gap:.35rem;max-height:230px;overflow:auto}
.ow-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.45rem .55rem;border-radius:8px;background:rgba(255,255,255,.03);font-size:.78rem;color:var(--text-1);min-width:0}
.ow-row>span:first-child{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ow-row small{color:var(--text-3);font-size:.68rem}
.ow-tag{font-size:.68rem;font-weight:700;padding:.15rem .5rem;border-radius:99px;background:var(--surface-3);color:var(--text-2);white-space:nowrap;flex-shrink:0}
.ow-tag-red{background:rgba(248,113,113,.15);color:#f87171}
.ow-tag-open{background:rgba(46,204,113,.15);color:#2ecc71}
.ow-esta{font-size:.66rem;color:var(--text-3);white-space:nowrap;flex-shrink:0}
.ow-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:2px}
.ow-dot-cocina{background:#f59e0b}
.ow-dot-barra{background:#38bdf8}
.ow-merma-total{font-size:1.6rem;font-weight:800;color:var(--red,#f87171);line-height:1}
.ow-dev{display:flex;gap:.6rem;padding:.55rem .65rem;border-radius:9px;background:rgba(255,255,255,.03);border:1px solid var(--border);font-size:.78rem}
.ow-dev>i{font-size:.55rem;margin-top:.3rem;flex-shrink:0}
.ow-dev-alta{background:rgba(248,113,113,.08);border-color:rgba(248,113,113,.25)}
.ow-dev-alta>i{color:#f87171}
.ow-dev-media{background:rgba(249,115,22,.07);border-color:rgba(249,115,22,.25)}
.ow-dev-media>i{color:#fb923c}
.ow-dev-baja{background:rgba(56,189,248,.06);border-color:rgba(56,189,248,.2)}
.ow-dev-baja>i{color:#38bdf8}
.ow-dev b{display:block;font-size:.78rem;color:var(--text-1);margin-bottom:.1rem}
.ow-dev span{color:var(--text-2);font-size:.72rem;line-height:1.4}
.ow-empty{display:flex;align-items:center;justify-content:center;padding:1.4rem 1rem;color:var(--text-3);font-size:.8rem;gap:.5rem;text-align:center}
.ow-empty i{font-size:1.3rem;opacity:.35}

.owner-notif{border-left:4px solid var(--accent)}
.owner-notif .pln-icon{background:rgba(249,115,22,.15);color:var(--accent)}

@media(max-width:900px){
    .ow-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
    .ow-container{padding:.75rem .75rem 1.5rem}
    .ow-header{flex-direction:column;align-items:flex-start}
    .ow-strip{grid-template-columns:repeat(2,1fr)}
}

/* ===== 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-ip{font-size:.7rem;padding:.1rem .45rem;border-radius:4px;background:var(--surface-3);color:var(--accent,#38bdf8);font-family:var(--font-mono)}
.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-fisico-digital{border-color:var(--blue,#38bdf8)}
.xr-fisico-digital .xr-fisico-vals{color:var(--blue,#38bdf8)}
.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}
/* 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}
#mocBuscarCliente{background:#000!important;color:#fff!important;border-color:#333!important}
#mocBuscarCliente::placeholder{color:#aaa}
.moc-footer .btn-sm:not(.accent){background:var(--accent);color:#fff;border-color:var(--accent)}
.moc-footer .btn-sm:not(.accent):hover{filter:brightness(1.1)}
/* 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}
/* Anticipo de reserva aplicado al cobro de la mesa (desglose por instrumento) */
.moc-cobro-total.moc-anticipo{color:var(--accent);background:var(--accent-bg,rgba(255,107,53,.1));border-color:rgba(255,107,53,.4);font-size:.82rem;margin-top:.35rem}
.moc-cobro-total.moc-anticipo i{margin-right:.3rem}
.moc-cobro-total.moc-neto{color:var(--yellow,#eab308);background:rgba(234,179,8,.08);border-color:rgba(234,179,8,.35)}
.moc-footer{display:flex;justify-content:flex-end;gap:.4rem}
/* Cuenta individual: botón Agregar turquesa/celeste y resaltado del cliente */
.moc-footer .btn-sm.moc-agregar{background:linear-gradient(135deg,#14b8a6,#0ea5e9);color:#fff;border:none}
.moc-footer .btn-sm.moc-agregar:hover{filter:brightness(1.12);box-shadow:0 0 10px rgba(14,165,233,.5)}
.moc-comanda.moc-ind{border-color:rgba(45,212,191,.45);background:rgba(45,212,191,.05)}
.moc-cliente-ind{display:inline-flex;align-items:center;gap:.35rem;font-weight:800;font-size:.95rem;color:#5eead4;background:rgba(45,212,191,.14);border:1px solid rgba(45,212,191,.55);padding:.18rem .55rem;border-radius:999px;box-shadow:0 0 10px rgba(45,212,191,.25)}
.moc-cliente-ind i{color:#2dd4bf}
#mocBuscarCliente{background:linear-gradient(90deg,rgba(45,212,191,.12),rgba(14,165,233,.1))!important;color:#fff!important;border:1.5px solid rgba(45,212,191,.6)!important;box-shadow:0 0 0 3px rgba(45,212,191,.12)!important}
#mocBuscarCliente:focus{border-color:#7dd3fc!important;box-shadow:0 0 0 3px rgba(125,211,252,.22)!important}
#mocBuscarCliente::placeholder{color:rgba(255,255,255,.55)}
/* Ficha de reserva dentro del modal de mesa ocupada (sin comandas aún) */
.moc-comanda.moc-reserva{border:1px solid rgba(255,107,53,.45);background:var(--accent-bg,rgba(255,107,53,.08))}
.moc-reserva-meta{font-size:.76rem;color:var(--text-2);margin:.3rem 0}
.moc-reserva-anticipo{font-size:.78rem;font-weight:600;color:var(--accent);margin-top:.2rem}
.moc-cliente{font-size:.82rem;color:var(--text-1)}
/* ===== 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 Conjuntas (unir mesas) ── */
.mesa-card.mesa-conjunta-card{border-color:rgba(255,107,53,.55);background:linear-gradient(180deg,rgba(255,107,53,.10),rgba(255,107,53,.03));min-width:210px;cursor:default}
.mesa-conjunta-card .mc-dot{--pulse:rgba(255,107,53,.55)}
.mesa-conjunta-card .mc-icon-chip{color:var(--accent);background:var(--accent-bg,rgba(255,107,53,.12));border-color:rgba(255,107,53,.4)}
.mc-grupo-badge{margin-top:.2rem;color:var(--accent);border-color:rgba(255,107,53,.4);background:var(--accent-bg,rgba(255,107,53,.08))}
.mc-grupo-actions{justify-content:flex-start;gap:.4rem;flex-wrap:wrap}
.mc-grupo-btn{display:inline-flex;align-items:center;gap:.35rem;font-size:.7rem;font-weight:700;padding:.32rem .6rem;border-radius:.45rem;border:1px solid var(--border);cursor:pointer;transition:filter .15s,transform .1s}
.mc-grupo-btn.accent{color:var(--accent);border-color:rgba(255,107,53,.5);background:var(--accent-bg,rgba(255,107,53,.1))}
.mc-grupo-btn.ghost{color:var(--text-2);background:transparent}
.mc-grupo-btn:hover:not(:disabled){filter:brightness(1.15)}
.mc-grupo-btn:disabled{opacity:.4;cursor:not-allowed}
.mesas-section .mesas-grid-inner{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:.75rem}
/* ── Zonas ── */
.zona-section{margin-bottom:1.25rem}
/* ── Plano de sala: zonas adaptativas cuando hay múltiples ── */
.mesas-section.mesas-multizona{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.9rem;align-items:start;padding:.2rem 0 .8rem}
.mesas-multizona .zona-section{min-width:0;width:auto;margin-bottom:0;background:var(--surface-2,rgba(255,255,255,.03));border-radius:.6rem;border:1px solid var(--border);padding:.5rem .5rem .6rem}
.mesas-multizona .zona-label{margin-bottom:.45rem;font-size:.68rem;background:transparent;border-radius:0}
.mesas-multizona .mesas-grid-inner{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:.45rem}
.mesas-multizona .mesa-card{min-height:122px;padding:.6rem .5rem .5rem}
.mesas-multizona .mc-icon-chip{width:38px;height:38px}
.mesas-multizona .mesa-card.mesa-rectangular .mc-icon-chip{width:46px}
.mesas-multizona .mc-foot{flex-direction:column;align-items:center;gap:.15rem;padding-top:.35rem}
.mesas-multizona .mc-total{font-size:.78rem}
/* tablet / mobile: stack vertical con grid adaptable */
@media(max-width:560px){
    .mesas-section.mesas-multizona{grid-template-columns:1fr;gap:.75rem;padding:.1rem 0 .5rem}
    .mesas-multizona .mesas-grid-inner{grid-template-columns:repeat(auto-fill,minmax(104px,1fr))}
    .mesas-multizona .mesa-card{min-height:124px;padding:.7rem .5rem .5rem}
}
.zona-label{display:flex;align-items:center;gap:.4rem;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-2);margin-bottom:.5rem;padding:.25rem .5rem;background:var(--surface-3,rgba(255,255,255,.04));border-radius:6px;border-left:3px solid var(--accent)}
.zona-sin-zona{border-left-color:var(--border);color:var(--text-3)}
/* ── Skeleton loading ── */
.mesa-card.skeleton{pointer-events:none;border-color:var(--border)!important;background:var(--surface-2)!important;cursor:default}
.mesa-card.skeleton::after{content:'';position:absolute;top:0;left:-100%;width:60%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.07),transparent);animation:shimmer 1.4s infinite}
/* ── Drag-and-drop zona config ── */
.zonas-dnd-layout{display:flex;flex-wrap:wrap;gap:.5rem;padding:.1rem 0 .35rem;align-items:flex-start}
.zona-drop-col{flex:1 1 150px;width:auto;max-width:none;overflow:hidden;background:var(--surface-2);border:2px dashed var(--border);border-radius:.45rem;padding:.4rem;display:flex;flex-direction:column;gap:.25rem;min-height:2.5rem;transition:border-color .15s,background .15s}
.zona-drop-col.drag-over{border-color:var(--accent);background:rgba(var(--accent-rgb,99,102,241),.08)}
.zona-drop-col-title{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-2);padding:.05rem .2rem .3rem;border-bottom:1px solid var(--border);margin-bottom:.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zona-drop-col .mesa-cfg-item{padding:.3rem .4rem;gap:.35rem}
.zona-drop-col .mci-nombre{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.8rem}
.zona-drop-col .mci-info{display:none}
.mesa-cfg-item[draggable]{cursor:grab}
.mesa-cfg-item[draggable]:active{cursor:grabbing;opacity:.7}
.mesa-card.mesa-concepto{min-width:140px;max-width:190px;border-radius:var(--r);border:2px dashed var(--border);display:flex;flex-direction:column;align-items:center;gap:.28rem;padding:.7rem .6rem .55rem;cursor:pointer;transition:all .18s var(--ease);background:var(--surface-2)}
.mesa-card.mesa-concepto:hover,.mesa-card.mesa-concepto.cm-selectable:hover{border-style:solid;transform:translateY(-2px);box-shadow:0 6px 18px rgba(10,10,26,.25)}
.mesa-card.mesa-concepto.mesa-ocupada{border-style:solid;background:var(--surface-3)}
.mesa-card.mesa-concepto .mc-nombre{font-size:.82rem;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);
}
/* Compactación al hacer scroll (Fase M4) */
.pos-header.scrolled{
    height:calc(var(--hdr) - 10px + env(safe-area-inset-top, 0px));
    box-shadow:0 10px 26px -12px rgba(10,10,26,.65);
    background:linear-gradient(180deg,rgba(24,25,38,.95),rgba(16,17,28,.9));
}

/* ── 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(10,10,26,.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(10,10,26,.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(10,10,26,.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}

/* ===== MÓDULO REPORTES EXPANDIDO ===== */

/* =============================================
   REPORTES — DISEÑO PREMIUM
   ============================================= */
#viewReportes .panel-container{max-width:1180px}

/* Barra de categorías: tarjeta flotante con scroll horizontal */
.rep-cats {
    position: sticky;
    top: calc(var(--hdr) + .5rem);
    z-index: 40;
    display: flex;
    align-items: center;
    gap: .3rem;
    margin: 0 0 .75rem;
    padding: .4rem;
    overflow-x: auto;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    background: linear-gradient(180deg, rgba(26,27,40,.92), rgba(16,17,28,.94));
    border: 1px solid var(--border);
    border-radius: var(--r-lg);
    box-shadow: var(--shadow);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
}
.rep-cats::-webkit-scrollbar { display: none; }
.rc-btn {
    display: flex;
    align-items: center;
    gap: .4rem;
    padding: .4rem .78rem;
    border: 1px solid transparent;
    border-radius: 999px;
    background: transparent;
    color: var(--text-2);
    font-size: .78rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    flex-shrink: 0;
    transition: background .2s cubic-bezier(.22,1,.36,1), color .2s cubic-bezier(.22,1,.36,1), box-shadow .2s;
}
.rc-btn i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 8px;
    font-size: .72rem;
    background: rgba(255,255,255,.05);
    color: var(--text-2);
    transition: all .2s cubic-bezier(.22,1,.36,1);
}
.rc-btn:hover { background: var(--bg-3); color: var(--text-0); }
.rc-btn:hover i { background: var(--accent-bg); color: var(--accent); }
.rc-btn.active {
    background: linear-gradient(135deg, var(--accent), #ff9a4d);
    color: #fff;
    box-shadow: 0 6px 20px rgba(var(--accent-rgb), .35);
}
.rc-btn.active i { background: rgba(255,255,255,.18); color: #fff; }

/* Panels de reporte */
.rep-panel { display: none; }
.rep-panel.active { display: block; animation: viewIn .3s cubic-bezier(.22,1,.36,1); }

/* Sub-tabs: control segmentado (píldora) */
.reportes-tabs {
    display: flex;
    align-items: center;
    gap: .2rem;
    padding: .3rem;
    margin-bottom: .75rem;
    overflow-x: auto;
    scrollbar-width: none;
    background: var(--bg-1);
    border: 1px solid var(--border);
    border-radius: 999px;
    width: fit-content;
    max-width: 100%;
}
.reportes-tabs::-webkit-scrollbar { display: none; }
.rt-btn {
    display: flex;
    align-items: center;
    gap: .35rem;
    padding: .42rem .9rem;
    border: none;
    border-radius: 999px;
    background: transparent;
    color: var(--text-2);
    cursor: pointer;
    font-size: .76rem;
    font-weight: 600;
    white-space: nowrap;
    flex-shrink: 0;
    transition: all .2s cubic-bezier(.22,1,.36,1);
}
.rt-btn:hover { color: var(--text-0); }
.rt-btn.active {
    background: linear-gradient(135deg, var(--accent), #ff9a4d);
    color: #fff;
    box-shadow: 0 4px 16px rgba(var(--accent-rgb), .35);
}
.reportes-tabs .rt-btn[data-rept] { pointer-events: auto; }

/* Barra de filtros: tarjeta */
.rep-filter-bar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .5rem;
    padding: .6rem .75rem;
    margin-bottom: .75rem;
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: var(--r-lg);
}
.rf-label {
    font-size: .72rem;
    color: var(--text-3);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    white-space: nowrap;
}
.rep-filter-bar .input-dark {
    background: var(--bg-3);
    border-color: var(--border);
    border-radius: .5rem;
}
.rep-filter-bar .input-dark:focus {
    border-color: var(--accent);
    box-shadow: 0 0 0 3px rgba(var(--accent-rgb), .15);
}

/* Chips de rango rápido (Hoy/Ayer/7d/Mes) */
.rf-chip {
    padding: .32rem .68rem;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: var(--bg-3);
    color: var(--text-2);
    font-size: .72rem;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: all .18s cubic-bezier(.22,1,.36,1);
}
.rf-chip:hover { background: var(--accent-bg); color: var(--accent); border-color: var(--accent); }
.rf-chip.active { background: var(--accent); color: #fff; border-color: var(--accent); }
.rf-sep { width: 1px; height: 22px; background: var(--border); margin: 0 .15rem; flex-shrink: 0; }

/* Cuerpo de resultados */
.rep-body { padding: .35rem .1rem; overflow-x: visible; }
.rep-body .empty-state { padding: 2.5rem 1rem; }
.rep-section-title {
    font-size: .8rem;
    font-weight: 700;
    color: var(--text-1);
    margin: .5rem 0 .45rem;
    display: flex;
    align-items: center;
    gap: .4rem;
}
.rep-section-title i { color: var(--accent); }

/* Resumen de cifras (chips de totales) */
.rep-summary {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: .5rem;
    margin-bottom: .75rem;
}
.rs-chip {
    display: flex;
    align-items: center;
    gap: .55rem;
    padding: .55rem .7rem;
    background: var(--bg-2);
    border: 1px solid var(--border);
    border-radius: var(--r);
    min-width: 0;
}
.rs-chip .rs-ic {
    width: 30px;
    height: 30px;
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .8rem;
    flex-shrink: 0;
}
.rs-chip .rs-body { min-width: 0; }
.rs-chip b {
    font-size: .92rem;
    font-weight: 800;
    color: var(--text-0);
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}
.rs-chip span {
    display: block;
    font-size: .62rem;
    color: var(--text-3);
    text-transform: uppercase;
    letter-spacing: .03em;
}
.rs-chip .rs-sub { font-size: .7rem; color: var(--text-2); text-transform: none; letter-spacing: 0; }

/* ===== REPORTE TIEMPOS KDS ===== */
.kds-sla-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.6rem;margin-bottom:.4rem}
.kds-sla-card{background:var(--bg-2);border:1px solid var(--border);border-radius:.7rem;padding:.7rem .8rem;box-shadow:var(--shadow-soft)}
.kds-sla-head{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem}
.kds-sla-head .kds-est{font-weight:700;font-size:.82rem;color:var(--text-0);display:flex;align-items:center;gap:.4rem}
.kds-sla-head b{font-size:.72rem;color:var(--text-2);font-weight:600}
.kds-sla-metrics{display:flex;gap:.7rem;flex-wrap:wrap;margin-bottom:.55rem}
.kds-sla-metrics span{display:flex;flex-direction:column;gap:.05rem;min-width:0}
.kds-sla-metrics small{font-size:.58rem;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em}
.kds-sla-metrics b{font-size:.85rem;color:var(--text-0);font-variant-numeric:tabular-nums}
.kds-sla-bar{height:7px;background:var(--bg-3);border-radius:4px;overflow:hidden;margin-bottom:.5rem}
.kds-sla-bar i{display:block;height:100%;border-radius:4px}
.kds-sla-foot{display:flex;justify-content:space-between;gap:.5rem;font-size:.68rem;flex-wrap:wrap;margin-bottom:.3rem}
.kds-sla-sub{font-size:.68rem;color:var(--text-3);font-variant-numeric:tabular-nums}
.kds-toplist{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.4rem}
.kds-toprow{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap;padding:.5rem .7rem;background:var(--bg-2);border:1px solid var(--border);border-radius:.55rem;font-size:.8rem}
.kds-top-name{min-width:0;display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}
.kds-top-name small{color:var(--text-3);font-size:.68rem}
.kds-top-nums{color:var(--text-2);font-size:.74rem;font-variant-numeric:tabular-nums;white-space:nowrap}
.kds-top-nums b{color:var(--text-0)}
.kds-badge{font-size:.6rem;font-weight:800;padding:.15rem .45rem;border-radius:20px;letter-spacing:.03em}
.kds-badge.red{background:var(--red-bg);color:var(--red)}
.kds-badge.yellow{background:var(--yellow-bg);color:var(--yellow)}
.kds-chart-wrap{background:var(--bg-2);border:1px solid var(--border);border-radius:.7rem;padding:.7rem .5rem .4rem;box-shadow:var(--shadow-soft);overflow:hidden}
.kds-chart-wrap canvas{display:block;width:100%}
.kds-legend{display:flex;gap:1rem;flex-wrap:wrap;margin-top:.45rem;font-size:.66rem;color:var(--text-2)}
.kds-legend i{display:inline-block;width:12px;height:8px;border-radius:2px;margin-right:.3rem;vertical-align:middle}
.report-table tr.kds-over-amarillo td{background:rgba(255,190,11,.05)}
.report-table tr.kds-over-amarillo td:first-child{box-shadow:inset 3px 0 0 var(--yellow)}
.report-table tr.kds-over-rojo td{background:rgba(255,59,92,.07)}
.report-table tr.kds-over-rojo td:first-child{box-shadow:inset 3px 0 0 var(--red)}

/* Tabla de reportes: contenedor elevado */
.report-table-wrap {
    overflow-x: auto;
    border-radius: .65rem;
    border: 1px solid var(--border);
    margin-bottom: .5rem;
    background: var(--bg-2);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.03), var(--shadow-soft);
}
.report-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: .8rem;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}
.report-table thead th {
    background: linear-gradient(180deg, var(--bg-4), var(--bg-3));
    padding: .55rem .75rem;
    text-align: left;
    font-size: .68rem;
    font-weight: 700;
    color: var(--text-2);
    text-transform: uppercase;
    letter-spacing: .05em;
    border-bottom: 1px solid var(--border);
    position: sticky;
    top: 0;
}
.report-table thead th:first-child { border-top-left-radius: .6rem; }
.report-table thead th:last-child { border-top-right-radius: .6rem; }
.report-table tbody tr { transition: background .12s; }
.report-table tbody tr:nth-child(even) td { background: rgba(255,255,255,.015); }
.report-table tbody tr:hover td { background: rgba(var(--accent-rgb), .07); }
.report-table td {
    padding: .5rem .75rem;
    color: var(--text-1);
    border-bottom: 1px solid rgba(255,255,255,.05);
}
.report-table tbody tr:last-child td { border-bottom: none; }
.report-table tfoot td {
    padding: .55rem .75rem;
    background: linear-gradient(180deg, var(--bg-3), var(--bg-4));
    border-top: 1px solid var(--border);
    font-size: .78rem;
}
.rep-cat-row td {
    background: rgba(var(--accent-rgb), .07);
    font-size: .73rem;
    font-weight: 700;
    color: var(--text-1);
    padding: .35rem .75rem;
    border-top: 1px solid var(--border);
}

/* Ranking: medallas con degradado */
.rep-rank {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.5rem;
    height: 1.5rem;
    border-radius: .45rem;
    background: var(--bg-3);
    color: var(--text-2);
    font-size: .72rem;
    font-weight: 800;
}
.rep-rank-top {
    background: linear-gradient(135deg, var(--accent), #ff9a4d);
    color: #fff;
    box-shadow: 0 3px 10px rgba(var(--accent-rgb), .3);
}

/* Badges de estado stock */
.rep-badge {
    display: inline-block;
    padding: .18rem .55rem;
    border-radius: 999px;
    font-size: .68rem;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .02em;
}
.rep-badge.green { background: rgba(0,210,106,.14); color: #34e589; }
.rep-badge.yellow { background: rgba(255,190,11,.14); color: #ffd23e; }
.rep-badge.red { background: rgba(255,59,92,.14); color: #ff6b84; }

/* Colores semánticos en reportes */
.text-red { color: #ef4444; }

/* ─── Barra de exportación ──────────────────────────────────────────── */
.rep-export-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: .5rem;
    padding: .6rem .1rem .2rem;
    margin-top: .6rem;
    border-top: 1px dashed var(--border);
}
.rep-export-label {
    font-size: .72rem;
    color: var(--text-3);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    white-space: nowrap;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: .3rem;
}
.rep-exp-btn {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .34rem .85rem;
    border: none;
    border-radius: .5rem;
    font-size: .75rem;
    font-weight: 700;
    cursor: pointer;
    white-space: nowrap;
    transition: filter .15s, transform .1s cubic-bezier(.22,1,.36,1);
    letter-spacing: .01em;
}
.rep-exp-btn:hover:not(:disabled) { filter: brightness(1.15); transform: translateY(-1px); }
.rep-exp-btn:active:not(:disabled) { transform: scale(.97); }
.rep-exp-btn:disabled { opacity: .55; cursor: not-allowed; }
.rep-exp-btn.excel { background: #1d6f42; color: #fff; }
.rep-exp-btn.pdf   { background: #c0392b; color: #fff; }
.rep-exp-btn.csv   { background: #2c3e50; color: #fff; }

/* ===== SKELETONS (P2) ===== */
.sk-table{display:flex;flex-direction:column;gap:.45rem;padding:.35rem 0}
.sk-row{display:flex;gap:.5rem}
.sk-cell,.sk-line{height:11px;border-radius:6px;background:var(--bg-3);position:relative;overflow:hidden;flex:1}
.sk-line{flex:none}
.sk-cell::after,.sk-line::after,.sk-kpi::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.07),transparent);animation:shimmer 1.4s infinite;transform:translateX(-100%)}
.kpi-card.skeleton{pointer-events:none}
.sk-kpi{width:40px;height:40px;border-radius:var(--r);background:var(--bg-3);position:relative;overflow:hidden;flex-shrink:0}

/* ===== SKELETONS + RETRY (carga en todas las vistas) ===== */
.sk-list{display:flex;flex-direction:column;gap:.6rem;padding:.4rem 0}
.sk-list-row{display:flex;align-items:center;gap:.6rem}
.sk-av{width:34px;height:34px;border-radius:50%;background:var(--bg-3);position:relative;overflow:hidden;flex-shrink:0}
.sk-av::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.07),transparent);animation:shimmer 1.4s infinite;transform:translateX(-100%)}
.sk-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem;padding:.4rem 0}
.sk-card{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r);padding:.7rem;display:flex;flex-direction:column;gap:.5rem;pointer-events:none}
.sk-chips{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.5rem;padding:.4rem 0}
.sk-chip{height:56px;border-radius:var(--r);background:var(--bg-2);border:1px solid var(--border);position:relative;overflow:hidden}
.sk-chip::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.07),transparent);animation:shimmer 1.4s infinite;transform:translateX(-100%)}
.load-retry{display:flex;flex-direction:column;align-items:center;gap:.6rem;padding:2rem 1rem;text-align:center;color:var(--text-2);font-size:.85rem}
.load-retry>i{font-size:1.8rem;color:var(--yellow);opacity:.9}
.load-retry p{margin:0;line-height:1.4;max-width:320px}
.load-retry .btn-sm{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .9rem}

/* ===== DENSIDAD COMPACTA (P2) ===== */
body.density-compact .report-table th,
body.density-compact .report-table td,
body.density-compact .data-table th,
body.density-compact .data-table td,
body.density-compact .xr-table th,
body.density-compact .xr-table td,
body.density-compact .tr-hist-table th,
body.density-compact .tr-hist-table td,
body.density-compact .kardex-table th,
body.density-compact .kardex-table td{
    padding-top:.16rem;padding-bottom:.16rem;
}
body.density-compact .report-table,
body.density-compact .data-table{font-size:.73rem}
body.density-compact .kpi-card{padding:.5rem .6rem}
body.density-compact .kpi-val{font-size:1.02rem}
body.density-compact .is-card{padding:.4rem .5rem}
body.density-compact .is-val{font-size:1.05rem}
body.density-compact .rep-body{padding:.4rem .6rem}
.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)}

/* ===================== ALMACENES ===================== */
.almacenes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;padding:.5rem 0}
.almacen-card{background:var(--bg-2);border:1px solid var(--border);border-radius:.65rem;padding:1rem;display:flex;flex-direction:column;gap:.6rem}
.almacen-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}
.almacen-card-title{font-size:1rem;font-weight:700;color:var(--text-1)}
.almacen-card-badge{font-size:.72rem;padding:.2rem .55rem;border-radius:.3rem;background:var(--accent);color:#fff;white-space:nowrap}
.almacen-card-badge.inactivo{background:var(--text-3);color:var(--bg-1)}
.almacen-card-badge.default{background:#22c55e}
.almacen-card-uso{font-size:.78rem;color:var(--text-3)}
.almacen-card-desc{font-size:.82rem;color:var(--text-2);min-height:1.2rem}
.almacen-card-stats{display:flex;gap:.75rem;font-size:.82rem;color:var(--text-2);border-top:1px solid var(--border);padding-top:.5rem}
.almacen-card-stats span strong{color:var(--text-1);font-weight:700}
.almacen-card-actions{display:flex;gap:.5rem;justify-content:flex-end}
/* Traslado item rows con campo de búsqueda */
.traslado-item-row{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .4rem;padding:.5rem .55rem;background:var(--bg-2);border:1px solid var(--border);border-radius:.45rem}
.traslado-item-row .tr-item-qty{width:80px;font-size:.82rem;text-align:right}
.traslado-item-row .tr-item-disp{font-size:.72rem;white-space:nowrap;flex:1}
/* Buscador de artículos en traslado — ocupa línea completa */
.tr-search-wrap{position:relative;flex-basis:100%;min-width:0}
.tr-item-search{width:100%;font-size:.85rem}
.tr-search-drop{display:none;position:absolute;top:calc(100% + 2px);left:0;right:0;background:var(--bg-1);border:1px solid var(--border);border-radius:.4rem;max-height:180px;overflow-y:auto;z-index:300;box-shadow:0 4px 12px rgba(10,10,26,.25)}
.tr-search-opt{display:flex;align-items:center;gap:.4rem;padding:.35rem .6rem;font-size:.8rem;cursor:pointer;border-bottom:1px solid var(--border)}
.tr-search-opt:last-child{border-bottom:none}
.tr-search-opt:hover{background:var(--bg-3)}
.tr-search-empty{color:var(--text-3);cursor:default}
.tr-search-empty:hover{background:none}
.tr-opt-nom{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tr-opt-disp{font-size:.72rem;color:var(--text-3);white-space:nowrap}
.tr-opt-badge{font-size:.65rem;font-weight:700;background:var(--bg-3);color:var(--text-2);padding:.1rem .35rem;border-radius:.25rem;flex-shrink:0}

/* Modal stock visor */
.stk-cat-filter{padding:.4rem .75rem .2rem;border-bottom:1px solid var(--border)}
.stk-cat-filter select{width:100%;font-size:.82rem}
.stk-modal-body{max-height:64vh;overflow-y:auto;padding:.5rem 0}
.stk-seccion-titulo{font-size:.78rem;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.05em;padding:.5rem .75rem .3rem;display:flex;gap:.4rem;align-items:center}
/* leyenda de colores */
.stk-leyenda{display:flex;gap:1rem;padding:.35rem .75rem .5rem;border-bottom:1px solid var(--border);font-size:.73rem;color:var(--text-2)}
.stk-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.25rem}
.stk-dot.stk-green{background:#22c55e}.stk-dot.stk-orange{background:#f97316}.stk-dot.stk-red{background:#ef4444}
/* tabla */
.stk-modal-table{width:100%;border-collapse:collapse;font-size:.84rem}
.stk-cat-row td{padding:.28rem .75rem;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-3);background:var(--bg-2);border-top:1px solid var(--border)}
.stk-modal-table tr{border-bottom:1px solid var(--border)}
.stk-modal-table tbody tr:last-child{border-bottom:none}
.stk-nom{padding:.38rem .75rem;color:var(--text-1);font-size:.84rem}
.stk-qty{padding:.38rem .75rem;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
/* badge de cantidad con color */

/* ===================== CONTORNOS EN CARRITO ===================== */
.ci-contornos{margin-top:.35rem;padding:.35rem;background:var(--bg-2);border-radius:.35rem;border:1px solid var(--border)}
.cic-header{display:flex;align-items:center;gap:.35rem;font-size:.7rem;font-weight:600;color:var(--text-2);margin-bottom:.25rem}
.cic-header small{color:var(--text-3);font-weight:400;font-size:.65rem}
.cic-selected{display:flex;flex-wrap:wrap;gap:.25rem;margin-bottom:.25rem}
.cic-item{display:inline-flex;align-items:center;gap:.3rem;padding:.15rem .35rem;background:var(--accent-bg);border:1px solid rgba(255,107,53,.2);border-radius:.9rem;font-size:.68rem;color:var(--accent)}
.cic-remove{background:transparent;border:none;color:var(--accent);cursor:pointer;padding:.1rem;border-radius:.3rem;transition:all .15s;font-size:.6rem}
.cic-remove:hover{background:var(--red-bg);color:var(--red)}
.cic-options{display:flex;flex-wrap:wrap;gap:.25rem}
.cic-select{width:100%;max-width:220px;font-size:.7rem;padding:.28rem .4rem;border-radius:.35rem;background:var(--bg-3);color:var(--text-1);border:1px solid var(--border);cursor:pointer;outline:none}
.cic-select:focus{border-color:var(--accent)}
.stk-badge{display:inline-block;padding:.18rem .55rem;border-radius:.9rem;font-size:.8rem;font-weight:700}
.stk-badge.stk-green{background:rgba(34,197,94,.15);color:#22c55e}
.stk-badge.stk-orange{background:rgba(249,115,22,.15);color:#f97316}
.stk-badge.stk-red{background:rgba(239,68,68,.15);color:#ef4444}
.stk-empty{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:2rem 1rem;color:var(--text-3)}
.stk-empty i{font-size:2rem;opacity:.35}

.modal-md{max-width:580px;width:98vw}
@media(max-width:480px){.almacenes-grid{grid-template-columns:1fr}}

/* ===================== HISTORIAL TRASLADOS ===================== */
.tr-hist-filtros{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:.75rem;align-items:center}
.tr-hist-filtros .input-dark{min-width:100px}
.tr-hist-filtros input[type="date"]{width:135px}
.tr-hist-filtros input[type="text"]{min-width:120px;flex:1}
.tr-hist-filtros select{min-width:130px}
.tr-hist-table{width:100%;border-collapse:collapse;font-size:.83rem}
.tr-hist-table thead th{background:var(--bg-3,var(--bg-2));color:var(--text-2);font-weight:600;padding:.45rem .65rem;text-align:left;border-bottom:2px solid var(--border);white-space:nowrap}
.tr-hist-table tbody tr{border-bottom:1px solid var(--border);transition:background .12s}
.tr-hist-table tbody tr:hover{background:var(--bg-2)}
.tr-hist-table tbody td{padding:.4rem .65rem;color:var(--text-1);vertical-align:top}
.tr-hist-table .tr-num{font-family:var(--font-mono);font-size:.8rem;background:var(--bg-3,var(--bg-2));padding:.1rem .35rem;border-radius:.25rem;white-space:nowrap}
.tr-expand-btn{background:none;border:none;cursor:pointer;color:var(--accent);font-size:.78rem;font-weight:600;display:inline-flex;align-items:center;gap:.3rem;padding:.2rem .35rem;border-radius:.3rem;transition:background .12s}
.tr-expand-btn:hover{background:var(--accent-bg)}
.tr-expand-btn i{font-size:.85rem}
.tr-items-detail{margin-top:.3rem;display:flex;flex-direction:column;gap:.2rem}
.tr-items-detail-row{display:flex;align-items:center;gap:.4rem;font-size:.77rem;padding:.18rem .3rem;background:var(--bg-3);border-radius:.3rem}
.tr-items-detail-row .tr-opt-nom{flex:1;color:var(--text-1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tr-items-detail-row .tr-opt-disp{color:var(--text-2);white-space:nowrap;font-variant-numeric:tabular-nums}
.tr-hist-anulado .tr-num{text-decoration:line-through;opacity:.6}
.tr-hist-anulado td{opacity:.55}
.tr-anulado-badge{font-size:.68rem;font-weight:700;background:rgba(239,68,68,.15);color:#ef4444;padding:.1rem .35rem;border-radius:.25rem;white-space:nowrap;margin-left:.35rem}
.tr-status-pendiente{font-size:.68rem;font-weight:700;background:rgba(234,179,8,.15);color:#eab308;padding:.1rem .35rem;border-radius:.25rem;white-space:nowrap;margin-left:.35rem}
.tr-status-recibido{font-size:.68rem;font-weight:700;background:rgba(34,197,94,.15);color:#22c55e;padding:.1rem .35rem;border-radius:.25rem;white-space:nowrap;margin-left:.35rem}
.tr-status-rechazado{font-size:.68rem;font-weight:700;background:rgba(239,68,68,.15);color:#ef4444;padding:.1rem .35rem;border-radius:.25rem;white-space:nowrap;margin-left:.35rem}
@media(max-width:600px){
  .tr-hist-filtros input[type="date"]{width:110px}
  .tr-hist-table thead th:nth-child(6),.tr-hist-table tbody td:nth-child(6){display:none}
}

/* ===== FASE C: MICRO-INTERACCIONES ===== */
.bump{animation:bump .35s var(--ease)}
@keyframes bump{0%{transform:scale(1)}40%{transform:scale(1.35)}100%{transform:scale(1)}}
.cart-header.flash{animation:cartFlash .5s var(--ease)}
@keyframes cartFlash{0%{background:var(--accent-bg)}100%{background:transparent}}
.product-card.skeleton{pointer-events:none;cursor:default;align-items:stretch;gap:.5rem;min-height:160px}
.product-card.skeleton .sk{height:12px;border-radius:6px;background:var(--bg-3);position:relative;overflow:hidden}
.product-card.skeleton .sk::after{content:'';position:absolute;top:0;left:-100%;width:60%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.07),transparent);animation:shimmer 1.4s infinite}
.product-card.skeleton .sk-img{height:112px;border-radius:10px;margin-bottom:.3rem}

/* ===== FASE D: ATAJOS DE TECLADO + BREAKPOINTS ===== */
.product-card.kb-selected{outline:2px solid var(--accent);outline-offset:2px;transform:translateY(-2px);box-shadow:0 8px 24px rgba(255,107,53,.25)}
.kb-help-list{max-height:60vh;overflow:auto;padding:0 .25rem}
.kb-help-row{display:flex;align-items:center;gap:.6rem;padding:.4rem 0;border-bottom:1px solid var(--border)}
.kb-help-row:last-child{border-bottom:none}
.kb-help-row kbd{background:var(--bg-3);border:1px solid var(--border);border-bottom-width:2px;border-radius:6px;padding:.15rem .45rem;font-family:var(--font-mono);font-size:.75rem;color:var(--text-1);min-width:56px;text-align:center}
.kb-help-row span{color:var(--text-2);font-size:.82rem}
@media(min-width:768px) and (max-width:1023px){
  .pos-cart{width:320px}
  .cobro-right{width:320px}
}

/* ===== FASE M6: HEADERS DE TABLA PEGAJOSOS + HOVER ===== */
.xr-table thead th,.tr-hist-table thead th,.report-table thead th,.data-table th{
    position:sticky;top:0;z-index:2;
    box-shadow:0 1px 0 var(--border),0 5px 12px -6px rgba(10,10,26,.55);
}
.data-table tr:hover td,.xr-table tbody tr:hover td,.tr-hist-table tbody tr:hover td{
    background:rgba(var(--accent-rgb),.07)!important;
}
/* Count-up: fuente de números con transición suave de cifra */
.kpi-val,.os-val,.is-val,.fc-kpi-val,.mtr-kpi-val{font-variant-numeric:tabular-nums;letter-spacing:-.01em}

/* ===== FASE M7: ENTRADA ESCALONADA EN GRIDS ===== */
/* Cada card aparece con fade+subida; --i lo setea renderProductos (JS). */
/* Con búsqueda activa el retardo es 0 para no parpadear al teclear. */
@media (prefers-reduced-motion: no-preference){
    .products-grid .product-card:not(.skeleton){
        animation:cardIn .4s cubic-bezier(.22,1,.36,1) backwards;
        animation-delay:calc(min(var(--i,0),12) * 30ms);
    }
}
@keyframes cardIn{
    from{opacity:0;transform:translateY(10px) scale(.975)}
    to{opacity:1;transform:none}
}

/* ===== FASE M8: ENTRADA DE MODALES CON ESCALA ===== */
/* El overlay ya hace fade (viewIn); el box hace una entrada con escala sutil */
.modal-overlay.show .modal-box{animation:modalBoxIn .3s cubic-bezier(.22,1,.36,1)}
@keyframes modalBoxIn{
    from{opacity:0;transform:translateY(18px) scale(.96)}
    to{opacity:1;transform:none}
}
/* Glow sutil en CTAs primarios al hover (solo desktop con mouse) */
@media (hover:hover) and (pointer:fine){
    .btn-action.accent:hover,.btn-action.primary:hover{box-shadow:0 6px 18px -4px rgba(255,107,53,.55),0 0 0 1px rgba(255,107,53,.25)}
    .btn-action.success:hover{box-shadow:0 6px 18px -4px rgba(0,210,106,.4)}
    .btn-action.danger:hover{box-shadow:0 6px 18px -4px rgba(255,59,92,.45)}
}

/* ===== A1: TOUCH TARGETS — controles solo-ícono ≥ 38px en táctil ===== */
@media (pointer:coarse){
    .ha-icon{width:40px;height:40px}
    .modal-x{width:36px;height:36px}
    .sab-close{width:36px;height:36px}
    .ci-remove{width:38px;height:38px}
}

/* ===== P0/P1: DISTRIBUCIÓN VISUAL EN TABLETS Y MÓVIL ===== */

/* P0-1: tooltip fijo del nav icon-only (creado por initNavTooltips).
   No puede recortarse por el scroll horizontal del header-nav. */
.nav-tip-fixed{
    position:fixed;
    z-index:400;
    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);
    box-shadow:0 4px 16px rgba(10,10,26,.35);
    transform:translateX(-50%);
    opacity:0;
    visibility:hidden;
    transition:opacity .12s var(--ease),visibility .12s;
    pointer-events:none;
}

/* P1-3: indicador de overflow — "hay más columnas, desliza".
   JS togglea .has-overflow mientras quede contenido a la derecha. */
.report-table-wrap.has-overflow,.xr-table-wrap.has-overflow,.table-wrap.has-overflow{
    background-image:linear-gradient(270deg,var(--bg-1) 22%,rgba(16,17,28,0) 58%);
    background-repeat:no-repeat;
    background-position:right center;
    background-size:42px 100%;
}

/* P1-2: prioridad de columnas en móvil.
   La clase mh-N en la <table> oculta la columna N ≤640px, sin tocar datos.
   Solo oculta columnas secundarias; nunca monto/totales críticos. */
@media (max-width:640px){
    .report-table.mh-2 tr>*:nth-child(2),.data-table.mh-2 tr>*:nth-child(2),.xr-table.mh-2 tr>*:nth-child(2){display:none}
    .report-table.mh-3 tr>*:nth-child(3),.data-table.mh-3 tr>*:nth-child(3),.xr-table.mh-3 tr>*:nth-child(3){display:none}
    .report-table.mh-4 tr>*:nth-child(4),.data-table.mh-4 tr>*:nth-child(4),.xr-table.mh-4 tr>*:nth-child(4){display:none}
    .report-table.mh-5 tr>*:nth-child(5),.data-table.mh-5 tr>*:nth-child(5),.xr-table.mh-5 tr>*:nth-child(5){display:none}
    .report-table.mh-6 tr>*:nth-child(6),.data-table.mh-6 tr>*:nth-child(6),.xr-table.mh-6 tr>*:nth-child(6){display:none}
    .report-table.mh-7 tr>*:nth-child(7),.data-table.mh-7 tr>*:nth-child(7),.xr-table.mh-7 tr>*:nth-child(7){display:none}
    .report-table.mh-8 tr>*:nth-child(8),.data-table.mh-8 tr>*:nth-child(8),.xr-table.mh-8 tr>*:nth-child(8){display:none}
}

/* ===== REPORTES — RESPONSIVE & PULIDO FINAL ===== */
@media (max-width:640px){
    .rep-cats{top:calc(var(--hdr) + .5rem)}
    .reportes-tabs{width:100%}
    .rep-summary{grid-template-columns:repeat(2,1fr);gap:.4rem}
    .rs-chip{padding:.5rem .55rem;gap:.45rem}
    .rs-chip .rs-ic{width:26px;height:26px}
    .rs-chip b{font-size:.82rem}
    .rep-filter-bar .input-dark{flex:1 1 120px}
    .rc-btn{padding:.38rem .7rem;font-size:.75rem}
}
@media (min-width:641px){
    .rep-summary{grid-template-columns:repeat(4,1fr)}
    .rep-body{display:flex;flex-direction:column}
    .rep-body .report-table-wrap{min-width:0}
}
/* X-Report: borde superior de acento y caja más definida */
.rx-ticket{
    border-top:3px solid var(--accent);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.04),var(--shadow-lift);
}
.fc-kpi{box-shadow:var(--shadow-soft);transition:transform .18s cubic-bezier(.22,1,.36,1),border-color .18s}
.fc-kpi:hover{border-color:rgba(var(--accent-rgb),.4);transform:translateY(-1px)}
.fc-kpi-val.text-green{color:var(--green)}

/* F3: objetivos táctiles mínimos en pantallas táctiles */
@media(pointer:coarse){
    .btn-action{min-height:48px}
    .btn-sm,.hn-btn,.rc-btn{min-height:40px}
    .input-dark{min-height:44px}
    .modal-x{min-width:38px;min-height:38px}
    .ci-remove{width:42px;height:42px}
}

/* ============================================================
   MÓDULO RESERVAS
   ============================================================ */
#viewReservas .panel-container{padding:0 .25rem 1rem}

/* Toolbar + resumen */
.pt-filters .input-dark{height:auto}
.reservas-resumen{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;padding:.55rem .75rem;margin-bottom:.85rem;background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r)}
.res-resumen-total{font-weight:800;font-size:.9rem;color:var(--text-0);margin-right:.35rem}
.res-resumen-item{font-size:.74rem;font-weight:700;padding:.22rem .6rem;border-radius:20px;border:1px solid var(--border);color:var(--text-2)}
.res-resumen-item.res-pendiente{color:var(--yellow);border-color:rgba(245,158,11,.4);background:rgba(245,158,11,.08)}
.res-resumen-item.res-confirmada{color:var(--accent);border-color:rgba(255,107,53,.4);background:rgba(255,107,53,.08)}
.res-resumen-item.res-en_mesa{color:var(--blue);border-color:rgba(59,130,246,.4);background:rgba(59,130,246,.08)}
.res-resumen-item.res-terminada{color:var(--green);border-color:rgba(52,211,153,.4);background:rgba(52,211,153,.08)}
.res-resumen-item.res-cancelada{color:var(--text-3);border-color:var(--border);background:transparent;text-decoration:line-through}

/* Tarjetas de reserva */
.reserva-card{display:flex;flex-direction:column;background:var(--bg-2);border:1px solid var(--border);border-left:4px solid var(--border);border-radius:var(--r);padding:.7rem .8rem;margin-bottom:.6rem;cursor:pointer;transition:transform .18s var(--ease),box-shadow .18s var(--ease),border-color .18s var(--ease);animation:mesaIn .38s cubic-bezier(.22,1,.36,1) backwards;animation-delay:calc(min(var(--i,0),14)*25ms)}
.reserva-card:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(10,10,26,.4)}
.reserva-card.res-pendiente{border-left-color:var(--yellow)}
.reserva-card.res-confirmada{border-left-color:var(--accent)}
.reserva-card.res-en_mesa{border-left-color:var(--blue)}
.reserva-card.res-terminada{border-left-color:var(--green)}
.reserva-card.res-cancelada{border-left-color:var(--text-3);opacity:.62}
.res-card-main{display:flex;align-items:flex-start;gap:.8rem}
.res-card-time{flex-shrink:0;min-width:76px;text-align:center;padding:.35rem .5rem;border-radius:var(--r);background:var(--bg-3);border:1px solid var(--border)}
.res-time{display:block;font-size:1.15rem;font-weight:800;font-family:var(--font-mono);color:var(--text-0);line-height:1.1}
.res-dur{display:block;font-size:.68rem;font-weight:600;color:var(--text-3);margin-top:.15rem}
.res-card-info{flex:1;min-width:0}
.res-card-nombre{font-size:.98rem;font-weight:800;color:var(--text-0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.res-card-sub{display:flex;flex-wrap:wrap;gap:.45rem;font-size:.76rem;color:var(--text-2);margin-top:.2rem}
.res-card-sub i{color:var(--text-3);width:13px;text-align:center}
.res-card-chips{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.35rem}
.res-tag{display:inline-flex;align-items:center;gap:.3rem;font-size:.7rem;font-weight:700;padding:.18rem .5rem;border-radius:14px;border:1px solid var(--border);color:var(--text-2)}
.res-tag-sena{--tag-c:gray}
.res-tag-sena[style*="--tag-c:blue"]{color:var(--blue);border-color:rgba(59,130,246,.4);background:rgba(59,130,246,.08)}
.res-tag-sena[style*="--tag-c:green"]{color:var(--green);border-color:rgba(52,211,153,.4);background:rgba(52,211,153,.08)}
.res-tag-sena[style*="--tag-c:gray"]{color:var(--text-3)}
.res-tag-consumo{color:var(--green);border-color:rgba(52,211,153,.4);background:rgba(52,211,153,.08)}
.res-card-obs{font-size:.75rem;color:var(--text-3);margin-top:.3rem;line-height:1.4}
.res-card-actions{display:flex;flex-direction:column;align-items:flex-end;gap:.4rem;flex-shrink:0}
.res-card-btns{display:flex;gap:.25rem}
.res-card-btns .btn-sm{background:var(--bg-3);border:1px solid var(--border);color:var(--text-2);font-size:.7rem;padding:.3rem .45rem;border-radius:var(--r)}
.res-card-btns .btn-sm:hover{color:var(--accent);border-color:rgba(255,107,53,.5);background:var(--accent-bg)}
.res-card-btns .res-btn-sena{color:var(--yellow);border-color:rgba(245,158,11,.45);background:rgba(245,158,11,.1)}
.res-card-total{display:flex;align-items:center;gap:.4rem;font-size:.76rem;font-weight:700;color:var(--green);margin-top:.5rem;padding-top:.45rem;border-top:1px dashed var(--border)}

/* Chips de estado */
.res-chip{display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;font-weight:800;padding:.25rem .7rem;border-radius:20px;white-space:nowrap}
.res-chip-pendiente{color:var(--yellow);background:rgba(245,158,11,.12);border:1px solid rgba(245,158,11,.45)}
.res-chip-confirmada{color:var(--accent);background:rgba(255,107,53,.12);border:1px solid rgba(255,107,53,.45)}
.res-chip-en_mesa{color:var(--blue);background:rgba(59,130,246,.12);border:1px solid rgba(59,130,246,.45)}
.res-chip-terminada{color:var(--green);background:rgba(52,211,153,.12);border:1px solid rgba(52,211,153,.45)}
.res-chip-cancelada{color:var(--text-3);background:var(--bg-3);border:1px solid var(--border);text-decoration:line-through}

/* Modal crear/editar */
.reserva-cliente-row{display:flex;gap:.4rem}
.reserva-cliente-row .input-dark{flex:1}
.reserva-sug{display:flex;flex-direction:column;gap:.15rem;margin-top:.3rem;border:1px solid var(--border);border-radius:var(--r);background:var(--bg-3);max-height:220px;overflow-y:auto}
.res-sug-item{display:flex;align-items:center;gap:.5rem;padding:.45rem .6rem;font-size:.82rem;cursor:pointer;transition:background .12s}
.res-sug-item:hover{background:var(--accent-bg)}
.res-sug-item small{color:var(--text-3);font-size:.72rem}
.res-sug-empty{color:var(--text-3);cursor:default}
.reserva-stepper{display:flex;align-items:center;gap:.5rem}
.reserva-tipo-row{display:flex;gap:.5rem}
.reserva-tipo-opt{flex:1;display:flex;align-items:center;justify-content:center;gap:.4rem;padding:.5rem;border:1px solid var(--border);border-radius:var(--r);font-size:.8rem;font-weight:600;color:var(--text-2);cursor:pointer;transition:all .15s;background:var(--bg-2)}
.reserva-tipo-opt:has(input:checked){border-color:rgba(255,107,53,.55);background:var(--accent-bg);color:var(--accent)}
.reserva-check{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--text-2);cursor:pointer;padding:.3rem 0}
.reservas-mesas-grid{display:block;margin-top:.3rem}
.res-grid-zona{margin-bottom:.6rem}
.res-grid-zona-t{font-size:.72rem;font-weight:700;color:var(--text-2);margin:0 0 .3rem;display:flex;align-items:center;gap:.35rem;text-transform:uppercase;letter-spacing:.03em}
.res-grid-zona-t::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--accent)}
.res-grid-zona-mesas{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:.45rem}
.res-mesa{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding:.5rem .3rem;border:1.5px solid var(--border);border-radius:var(--r);background:var(--bg-2);cursor:pointer;font-size:.78rem;font-weight:600;text-align:center;transition:all .14s}
.res-mesa i{font-size:1rem;color:var(--text-3)}
.res-mesa small{font-size:.66rem;color:var(--text-3);font-weight:700}
.res-mesa:hover{border-color:var(--accent);transform:translateY(-2px)}
.res-mesa.sel{border-color:var(--accent);background:var(--accent-bg);color:var(--accent)}
.res-mesa.sel i{color:var(--accent)}
.res-mesa.res-ocup{opacity:.85;background:var(--bg-3)}
.res-mesa-ocup{font-size:.6rem;font-weight:700;color:var(--yellow);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.res-grid-empty{font-size:.78rem;color:var(--text-3);text-align:center;padding:.6rem}

/* Disponibilidad en vivo */
.reserva-disp-status{font-size:.8rem;font-weight:700;padding:.5rem .7rem;border-radius:var(--r);margin:.25rem 0 .5rem;display:flex;align-items:center;gap:.4rem}
.res-disp-loading{background:var(--bg-3);color:var(--text-3);border:1px solid var(--border)}
.res-disp-ok{background:rgba(52,211,153,.1);color:var(--green);border:1px solid rgba(52,211,153,.35)}
.res-disp-conflict{background:rgba(239,68,68,.1);color:var(--red);border:1px solid rgba(239,68,68,.4)}
.res-cap-status{font-size:.78rem;font-weight:600;margin:-.15rem 0 .5rem}
.res-cap-warn{color:var(--yellow)}

/* Ficha (detalle) */
.res-ficha-estado{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.85rem}
.res-ficha-cliente{display:flex;align-items:center;gap:.7rem;background:var(--bg-3);border:1px solid var(--border);border-radius:var(--r);padding:.6rem .75rem;margin-bottom:.75rem}
.res-ficha-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#ff6b35);display:flex;align-items:center;justify-content:center;font-weight:800;color:#fff;flex-shrink:0;font-size:.95rem}
.res-ficha-cliente h4{margin:0;font-size:.95rem;color:var(--text-0)}
.res-ficha-cliente p{margin:.1rem 0 0;font-size:.76rem;color:var(--text-3)}
.res-ficha-grid{display:grid;grid-template-columns:1fr 1fr;gap:.35rem .75rem;margin-bottom:.6rem}
.res-ficha-grid p{margin:0;font-size:.82rem;color:var(--text-2);display:flex;align-items:center;gap:.4rem}
.res-ficha-grid i{color:var(--text-3);width:15px;text-align:center}
.res-ficha-line{font-size:.82rem;color:var(--text-2);display:flex;align-items:center;gap:.4rem;margin:.3rem 0;flex-wrap:wrap}
.res-ficha-line i{width:16px;text-align:center}
.res-ficha-muted{color:var(--text-3)}
.res-ficha-consumo{font-size:.82rem;font-weight:700;color:var(--green);margin:.4rem 0;display:flex;align-items:center;gap:.4rem}
.res-ficha-obs{font-size:.8rem;color:var(--text-2);background:var(--bg-3);border-left:3px solid var(--accent);border-radius:var(--r);padding:.5rem .7rem;margin:.5rem 0}
.res-ficha-hist-title{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3);margin:1rem 0 .4rem}
.res-ficha-hist{display:flex;flex-direction:column;gap:.3rem}
.res-hist-item{display:flex;align-items:flex-start;gap:.6rem;font-size:.78rem;background:var(--bg-3);border:1px solid var(--border);border-radius:var(--r);padding:.4rem .55rem}
.res-hist-fecha{color:var(--text-3);font-size:.7rem;white-space:nowrap;padding-top:.05rem;font-family:var(--font-mono)}
.res-hist-txt{color:var(--text-1);flex:1}

/* Banner aviso reserva (reusa estilos .pln-*) */
.reserva-notif{background:linear-gradient(135deg,#1e3a8a,#312e81);border-color:var(--blue)}
.reserva-notif .pln-icon{background:rgba(96,165,250,.2);color:var(--blue)}
.reserva-notif .pln-ver{background:var(--blue)}
.reserva-notif .pln-ver:hover{background:#3b82f6}

/* ============================================================= */
/*  MODAL RESERVA — REDISEÑO PREMIUM (scoped .resv-)            */
/* ============================================================= */
#modalReserva .resv-hdr{padding:.9rem 1.1rem}
#modalReserva .resv-hdr h3{display:flex;align-items:center;gap:.6rem}
#modalReserva .resv-hdr .resv-hdr-ic{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,var(--accent),#ff8a3d);color:#fff;font-size:.85rem;box-shadow:0 4px 14px rgba(255,107,53,.35)}
.resv-body{padding:1.1rem 1.1rem .5rem!important;display:flex;flex-direction:column;gap:.8rem;overflow-y:auto;flex:1 1 auto}
.resv-body .resv-card{flex:0 0 auto;min-height:0}
.resv-card{background:linear-gradient(180deg,var(--bg-3),var(--bg-2));border:1px solid var(--border);border-radius:16px;box-shadow:inset 0 1px 0 rgba(255,255,255,.03),0 6px 20px rgba(0,0,0,.18)}
.resv-card-h{display:flex;align-items:center;gap:.7rem;padding:.7rem .9rem;border-bottom:1px solid rgba(42,42,78,.7);background:rgba(255,255,255,.02);border-radius:16px 16px 0 0}
.resv-card-h strong{font-size:.86rem;color:var(--text-0);letter-spacing:.01em}
.resv-card-h small{display:block;font-size:.68rem;color:var(--text-3);font-weight:600;margin-top:.05rem}
.resv-card-h .resv-step{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:10px;background:var(--accent-bg);color:var(--accent);font-size:.82rem;border:1px solid rgba(255,107,53,.25)}
.resv-card-b{padding:.85rem .9rem}

/* Layout 2 col para grupos de campos */
.resv-grid2{display:grid;grid-template-columns:1fr 1fr;gap:.6rem .75rem}
.resv-grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.6rem .75rem;align-items:end}
@media(max-width:640px){.resv-grid2,.resv-grid3{grid-template-columns:1fr}}
.resv-card .form-group{margin:0}
.resv-card .form-group + .form-group{margin-top:.6rem}

/* ---- Fecha (tarjeta) ---- */
.resv-date{position:relative;display:flex;flex-direction:column;gap:.35rem}
.resv-date-lab{display:flex;align-items:center;gap:.3rem;font-size:.75rem;font-weight:700;color:var(--text-2)}
.resv-date-lab em{color:var(--accent);font-style:normal}
.resv-date-native{position:absolute;left:0;bottom:0;width:1px;height:1px;opacity:0;pointer-events:none;border:0;padding:0;z-index:-1}
.resv-date-mask{display:flex;align-items:stretch;gap:.35rem;background:linear-gradient(160deg,var(--bg-3),var(--bg-2));border:1.5px solid var(--border);border-radius:14px;overflow:hidden;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.resv-date-nav{flex:0 0 auto;width:38px;background:rgba(255,255,255,.03);border:0;color:var(--text-3);font-size:.8rem;cursor:pointer;transition:all .15s}
.resv-date-nav:hover{color:var(--accent);background:var(--accent-bg)}
.resv-date-main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.05rem;background:transparent;border:0;cursor:pointer;padding:.5rem .4rem;transition:background .15s}
.resv-date-main:hover{background:rgba(255,255,255,.03)}
.resv-date-dia{font-size:1.5rem;font-weight:800;line-height:1.1;color:var(--text-0);font-variant-numeric:tabular-nums;letter-spacing:.02em}
.resv-date-mes{font-size:.7rem;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.08em}
.resv-date-quick{display:flex;gap:.35rem;margin-top:.45rem}
.resv-chip{flex:1;padding:.35rem .4rem;font-size:.72rem;font-weight:700;color:var(--text-2);background:var(--bg-3);border:1px solid var(--border);border-radius:9px;cursor:pointer;transition:all .15s}
.resv-chip:hover{color:var(--accent);border-color:rgba(255,107,53,.45);background:var(--accent-bg)}

/* ---- Hora (chips) ---- */
.resv-time{display:flex;flex-direction:column;gap:.35rem}
.resv-time-lab{display:flex;align-items:center;gap:.3rem;font-size:.75rem;font-weight:700;color:var(--text-2)}
.resv-time-lab em{color:var(--accent);font-style:normal}
.resv-time-chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(62px,1fr));gap:.3rem;flex:1;max-height:118px;overflow-y:auto;padding-right:2px}
.resv-time-chips::-webkit-scrollbar{width:5px}
.resv-time-chips::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px}
.resv-chip-time{font-family:var(--font-mono);font-size:.74rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text-2);background:var(--bg-2);border:1px solid var(--border);border-radius:8px;padding:.32rem .2rem;cursor:pointer;text-align:center;transition:all .14s}
.resv-chip-time:hover{border-color:rgba(255,107,53,.5);color:var(--accent);transform:translateY(-1px)}
.resv-chip-time.sel{background:linear-gradient(135deg,var(--accent),#ff8a3d);border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(255,107,53,.35)}

/* ---- Stepper personas ---- */
.resv-stepper{gap:.45rem}
.resv-stepper .btn-sm{width:34px;height:34px;border-radius:10px;background:var(--bg-3);border:1px solid var(--border);color:var(--text-2)}
.resv-stepper .btn-sm:hover{background:var(--accent-bg);border-color:rgba(255,107,53,.5);color:var(--accent)}
.resv-stepper input{max-width:70px;height:34px;font-size:.9rem;font-weight:800}

/* ---- Tipo de espacio (segmented) ---- */
.reserva-tipo-opt i{font-size:.8rem}
.reserva-tipo-opt:has(input:checked) i{color:var(--accent)}

/* ---- Grid de mesas premium ---- */
.resv-mesas-grid .res-grid-zona{margin-bottom:.7rem}
.resv-mesas-grid .res-grid-zona:last-child{margin-bottom:0}
.resv-mesas-grid .res-grid-zona-t{color:var(--text-2)}
.resv-mesas-grid .res-grid-zona-mesas{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:.5rem}
.resv-mesas-grid .res-mesa{position:relative;gap:.2rem;padding:.55rem .3rem .5rem;border-radius:12px;background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.015));box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.resv-mesas-grid .res-mesa i{font-size:1.05rem}
.resv-mesas-grid .res-mesa-ocup{position:absolute;bottom:-1px;left:0;right:0;font-size:.58rem;padding:.15rem .2rem .1rem;background:rgba(0,0,0,.22);border-radius:0 0 11px 11px;color:var(--yellow);letter-spacing:.01em}
.resv-mesas-grid .res-mesa.sel{background:linear-gradient(180deg,rgba(255,107,53,.2),rgba(255,107,53,.1));border-color:var(--accent);box-shadow:0 6px 18px rgba(255,107,53,.22),inset 0 1px 0 rgba(255,255,255,.06)}
.resv-mesas-grid .res-mesa.sel::after{content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;position:absolute;top:4px;right:5px;font-size:.55rem;color:#fff;background:var(--accent);width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px rgba(255,107,53,.5)}
.resv-mesas-grid .res-mesa.res-ocup{cursor:not-allowed;opacity:.72;filter:saturate(.6)}
.resv-mesas-grid .res-mesa.res-ocup:hover{transform:none;border-color:var(--border)}

/* ---- Estado carga / error mesas ---- */
.resv-mesas-status{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem;font-size:.8rem;color:var(--text-3);background:var(--bg-3);border:1px dashed var(--border);border-radius:12px;margin-top:.35rem}
.resv-mesas-status i.fa-spin{color:var(--accent)}
.resv-mesas-status.resv-mesas-error{color:var(--red);border-color:rgba(255,59,92,.4);background:rgba(255,59,92,.06)}
.resv-mesas-retry{margin-left:.35rem;padding:.28rem .65rem;font-size:.72rem;font-weight:800;color:var(--accent);background:var(--accent-bg);border:1px solid rgba(255,107,53,.45);border-radius:8px;cursor:pointer;transition:all .15s}
.resv-mesas-retry:hover{background:var(--accent);color:#fff}

/* ---- Toggle "Pagada" ---- */
.resv-switch{display:flex;align-items:center;gap:.55rem;cursor:pointer;user-select:none;margin-left:auto}
.resv-switch input{position:absolute;opacity:0;width:0;height:0}
.resv-switch-track{position:relative;flex-shrink:0;width:44px;height:24px;border-radius:99px;background:var(--bg-4);border:1px solid var(--border);transition:all .18s;box-shadow:inset 0 2px 5px rgba(0,0,0,.3)}
.resv-switch-track::after{content:'';position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--text-3);transition:all .18s var(--ease)}
.resv-switch input:checked + .resv-switch-track{background:linear-gradient(135deg,var(--green),#0bbf63);border-color:transparent;box-shadow:0 3px 10px rgba(0,210,106,.35)}
.resv-switch input:checked + .resv-switch-track::after{left:22px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.resv-switch-txt{font-size:.72rem;font-weight:800;color:var(--text-3);transition:color .15s;text-transform:uppercase;letter-spacing:.06em;min-width:66px}
.resv-switch:has(input:checked) .resv-switch-txt{color:var(--green)}

/* ---- Anticipo ---- */
.resv-anticipo-total{display:flex;align-items:center;gap:.45rem;font-size:.74rem;font-weight:700;color:var(--text-3);margin-top:.65rem;padding-top:.6rem;border-top:1px dashed var(--border)}
.resv-anticipo-total b{color:var(--green);font-size:.86rem}

/* ---- Footer acciones ---- */
.resv-foot{display:flex;align-items:center;gap:.6rem;padding:.85rem 1.1rem;background:rgba(0,0,0,.18)}
.resv-btn-guardar{display:inline-flex;align-items:center;gap:.5rem;padding:.62rem 1.25rem;border:0;border-radius:11px;font-size:.84rem;font-weight:800;letter-spacing:.01em;color:#fff;background:linear-gradient(135deg,var(--accent),#ff8a3d);box-shadow:0 6px 18px rgba(255,107,53,.4);cursor:pointer;transition:all .18s}
.resv-btn-guardar:hover{transform:translateY(-1px);box-shadow:0 9px 24px rgba(255,107,53,.5)}
.resv-btn-guardar:active{transform:translateY(0)}
.resv-btn-guardar:disabled{opacity:.55;cursor:not-allowed;transform:none;box-shadow:none}
.resv-btn-guardar .resv-btn-spin{display:none;width:15px;height:15px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:resv-spin .7s linear infinite}
.resv-btn-guardar.loading .resv-btn-spin{display:inline-block}
.resv-btn-guardar.loading i{display:none}
@keyframes resv-spin{to{transform:rotate(360deg)}}

/* ===================== MODAL ARTÍCULO (SVC-1) ===================== */
#modalProducto .modal-box{max-width:640px}

.pa-wrap{display:flex;flex-direction:column;gap:.8rem}
.pa-media{margin-bottom:.1rem}

/* Tarjetas de sección */
.pa-sec{
    background:linear-gradient(180deg,rgba(28,29,44,.72),rgba(20,21,32,.72));
    border:1px solid rgba(255,255,255,.07);
    border-radius:.8rem;
    padding:.7rem .8rem .85rem;
}
.pa-sec-head{
    display:flex;align-items:center;gap:.45rem;
    font-size:.72rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;
    color:var(--text-3);margin-bottom:.65rem;
}
.pa-sec-head i{color:var(--accent);font-size:.8rem;width:1rem;text-align:center}

.pa-grid2{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.pa-grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.6rem}
.pa-grid2 .form-group,.pa-grid3 .form-group{margin-bottom:0}
@media(max-width:520px){.pa-grid3{grid-template-columns:1fr 1fr}.pa-grid2{grid-template-columns:1fr}}

/* Tarjeta Servicio */
.pa-sec-svc{border-color:rgba(56,189,248,.25)}
.pa-sec-svc .pa-sec-head{color:var(--blue)}
.pa-svc-row{display:flex;align-items:flex-start;gap:.8rem}
.pa-svc-txt{flex:1;min-width:0}
.pa-svc-chip{
    display:inline-block;margin-left:.35rem;padding:.12rem .45rem;border-radius:999px;
    background:rgba(56,189,248,.16);color:var(--blue);
    font-size:.62rem;font-weight:800;letter-spacing:.04em;vertical-align:middle;
    border:1px solid rgba(56,189,248,.3);
}
.pa-svc-banner{
    display:flex;align-items:center;gap:.5rem;margin-top:.65rem;padding:.55rem .7rem;
    background:rgba(56,189,248,.1);border:1px dashed rgba(56,189,248,.35);border-radius:.55rem;
    color:#a5d8f7;font-size:.75rem;line-height:1.4;
}
.pa-svc-banner i{color:var(--blue)}

/* Filas de configuración (receta / contorno) */
.pa-cfg{display:flex;flex-direction:column;gap:.55rem}
.pa-cfg-row{
    display:flex;align-items:center;gap:.75rem;
    padding:.55rem .7rem;background:var(--bg-3);
    border-radius:.55rem;border:1px solid rgba(255,255,255,.06);
}

/* Chip Servicio en la grilla de productos */
.pc-chip.svc{
    background:rgba(56,189,248,.22);color:#8ed8ff;
    box-shadow:0 2px 8px rgba(10,10,26,.35),inset 0 0 0 1px rgba(56,189,248,.35);
}

/* Inventario: fila servicio */
.report-table .text-blue{color:var(--blue);font-weight:700}
.inv-tipo-badge.servicio{background:rgba(56,189,248,.18);color:var(--blue)}
.inv-svc-label{
    display:inline-flex;align-items:center;gap:.35rem;
    padding:.14rem .55rem;border-radius:999px;
    background:rgba(56,189,248,.14);color:var(--blue);
    font-size:.7rem;font-weight:700;letter-spacing:.03em;
    border:1px solid rgba(56,189,248,.3);
}
