*{box-sizing:border-box}
:root{--primary:#123c3a;--primary-2:#164e49;--accent:#14866d;--accent-2:#0f766e;--bg:#f4f7f6;--surface:#fff;--surface-2:#f8faf9;--text:#24323d;--muted:#667784;--border:#dfe8e5;--danger:#c84b4b;--danger-bg:#fff0f0;--warning:#d58b20;--warning-bg:#fff7e7;--success:#138a67;--shadow:0 8px 30px rgba(18,60,58,.08);--radius:18px}
html{scroll-behavior:smooth}body{margin:0;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);font-size:15px;overflow-x:hidden}button,input,select,textarea{font:inherit}.app{display:none}.app.active{display:block}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(135deg,#0e302f,#164e49)}.login-card{width:min(100%,430px);background:#fff;border-radius:26px;padding:34px;box-shadow:0 30px 80px rgba(0,0,0,.28)}.login-brand{width:68px;height:68px;border-radius:18px;background:var(--primary);color:#fff;display:grid;place-items:center;font-size:24px;font-weight:800;margin-bottom:22px}.login-card h1{margin:4px 0 8px;font-size:30px}.login-subtitle{color:var(--muted);margin:0 0 24px}.eyebrow{margin:0 0 6px!important;text-transform:uppercase;letter-spacing:.1em;font-size:11px!important;font-weight:800;color:var(--accent)!important}.login-card label,label{display:block;font-size:13px;font-weight:700;margin:0 0 7px;color:#43545e}input,select,textarea{width:100%;border:1px solid var(--border);background:#fff;color:var(--text);border-radius:12px;padding:13px 14px;outline:none;transition:.18s;margin:0 0 14px}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(20,134,109,.12)}textarea{min-height:130px;resize:vertical}.btn{border:0;border-radius:12px;padding:12px 16px;font-weight:750;background:var(--accent);color:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:.18s;min-height:44px}.btn:hover{filter:brightness(.97);transform:translateY(-1px)}.btn-green{background:var(--success)}.btn-yellow{background:#e7a638;color:#36260d}.btn-gray{background:#eef3f1;color:#3e5250}.btn-red{background:var(--danger);color:#fff}.sidebar{position:fixed;inset:0 auto 0 0;width:260px;background:var(--primary);color:#fff;z-index:300;display:flex;flex-direction:column;padding:22px 16px}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:0 8px 24px;border-bottom:1px solid rgba(255,255,255,.12)}.brand-mark{width:44px;height:44px;border-radius:13px;background:#fff;color:var(--primary);display:grid;place-items:center;font-weight:900}.sidebar-brand strong,.sidebar-brand small{display:block}.sidebar-brand strong{font-size:16px}.sidebar-brand small{color:#b9d2cf;margin-top:3px;font-size:11px}.nav{display:flex;flex-direction:column;gap:6px;padding:22px 0;flex:1}.nav button{border:0;background:transparent;color:#c5dad7;border-radius:12px;padding:12px 11px;display:grid;grid-template-columns:30px 22px 1fr;align-items:center;gap:8px;text-align:left;cursor:pointer;transition:.18s}.nav button:hover{background:rgba(255,255,255,.08);color:#fff}.nav button.active{background:#fff;color:var(--primary);box-shadow:0 8px 20px rgba(0,0,0,.16)}.nav-shortcut{font-size:10px;border:1px solid currentColor;border-radius:6px;padding:3px 4px;text-align:center;opacity:.85}.sidebar-footer{border-top:1px solid rgba(255,255,255,.12);padding-top:16px}.sidebar-user{display:flex;align-items:center;gap:10px;padding:0 4px 14px}.user-avatar{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.12)}.sidebar-user small,.sidebar-user strong{display:block}.sidebar-user small{color:#b9d2cf;font-size:10px}.sidebar-user strong{font-size:12px;margin-top:3px;overflow-wrap:anywhere}.logout-btn{width:100%;border:1px solid rgba(255,255,255,.18);background:transparent;color:#fff;border-radius:10px;padding:10px;cursor:pointer}.main-shell{margin-left:260px;min-height:100vh}.topbar{height:84px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 30px;position:sticky;top:0;z-index:100}.topbar-title p{margin:0;color:var(--muted);font-size:12px}.topbar-title h1{margin:3px 0 0;font-size:23px}.topbar-actions{display:flex;align-items:center;gap:10px}.server-pill{display:flex;align-items:center;gap:8px;background:var(--surface-2);border:1px solid var(--border);padding:9px 12px;border-radius:30px;font-size:11px;color:var(--muted);max-width:360px}.status-dot{width:8px;height:8px;border-radius:50%;background:#1cab7f;box-shadow:0 0 0 4px rgba(28,171,127,.12)}.icon-btn,.mobile-menu-btn{width:42px;height:42px;border:1px solid var(--border);background:#fff;color:var(--text);border-radius:11px;display:grid;place-items:center;cursor:pointer}.mobile-menu-btn{display:none}.container{padding:26px 30px 40px;max-width:1600px;margin:auto}.screen{display:none;animation:screenIn .18s ease}.screen.active{display:block}@keyframes screenIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow);margin-bottom:18px}.grid{display:grid;gap:16px}.dashboard-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.metric-card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:18px;box-shadow:var(--shadow);display:flex;gap:14px;align-items:flex-start}.metric-icon{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;flex:0 0 auto}.metric-icon.green{background:#e7f7f1;color:#0f8a70}.metric-icon.amber{background:var(--warning-bg);color:var(--warning)}.metric-icon.red{background:var(--danger-bg);color:var(--danger)}.metric-icon.blue{background:#eaf2ff;color:#3d73b9}.metric-card p{margin:0;color:var(--muted);font-size:12px;font-weight:650}.metric-card .total{font-size:25px;font-weight:850;margin:5px 0}.metric-card small{color:#8a979f;font-size:10px}.dashboard-columns,.report-columns,.settings-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px}.section-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}.section-heading h2{margin:0;font-size:20px}.quick-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.quick-action{border:1px solid var(--border);background:var(--surface-2);border-radius:14px;padding:15px;display:flex;align-items:center;gap:12px;text-align:left;color:var(--text);cursor:pointer}.quick-action.primary{background:var(--primary);color:#fff;border-color:var(--primary)}.quick-action i{font-size:20px;width:28px}.quick-action strong,.quick-action small{display:block}.quick-action small{opacity:.68;margin-top:3px}.chips-wrap{display:flex;flex-wrap:wrap;gap:7px}.badge{display:inline-flex;padding:6px 9px;border-radius:999px;background:#edf5f3;color:var(--primary-2);font-size:11px;font-weight:750;margin:2px}.badge-red{background:var(--danger-bg);color:var(--danger)}.small{font-size:12px;color:var(--muted)}.pos-layout{display:grid;grid-template-columns:minmax(0,7fr) minmax(330px,3fr);gap:18px;align-items:start}.pos-products-panel{min-height:calc(100vh - 136px)}.pos-cart-panel{position:sticky;top:102px;max-height:calc(100vh - 120px);display:flex;flex-direction:column;overflow:hidden}.pos-heading{align-items:center}.pos-client-summary{display:flex;align-items:center;gap:12px;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:9px 10px}.pos-client-summary span,.pos-client-summary strong{display:block}.pos-client-summary strong{margin-top:3px}.pos-change-client{padding:8px 10px;min-height:36px}.product-search-bar{display:grid;grid-template-columns:minmax(260px,1fr) 78px 120px auto;gap:10px;align-items:end;padding:14px;background:var(--surface-2);border:1px solid var(--border);border-radius:15px}.search-field{position:relative}.search-field i{position:absolute;left:14px;top:15px;color:var(--muted)}.search-field input{padding-left:42px;margin:0;height:48px}.compact-field label{font-size:10px;margin-bottom:5px}.compact-field input{margin:0;height:48px;padding:10px}.add-product-btn{height:48px}.products-toolbar{display:flex;justify-content:space-between;margin:20px 2px 12px}.products-toolbar span{font-weight:800}.products-toolbar small{color:var(--muted)}.products-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.product-card-pos{border:1px solid var(--border);background:#fff;border-radius:15px;padding:15px;text-align:left;cursor:pointer;transition:.18s;min-height:135px;display:flex;flex-direction:column}.product-card-pos:hover{border-color:var(--accent);box-shadow:0 10px 24px rgba(20,134,109,.12);transform:translateY(-2px)}.product-card-pos .product-icon{width:38px;height:38px;border-radius:11px;background:#edf6f4;color:var(--accent);display:grid;place-items:center;margin-bottom:10px}.product-card-pos strong{font-size:13px;line-height:1.35}.product-card-pos small{color:var(--muted);margin-top:4px}.product-card-pos .product-price{font-size:19px;font-weight:850;color:var(--primary);margin-top:auto;padding-top:12px}.cart-header{display:flex;align-items:center;justify-content:space-between}.cart-header h2{margin:0}.danger-soft{background:var(--danger-bg);color:var(--danger);border-color:#f5cece}.cart-client-info{display:grid;gap:6px;margin:14px 0}.cart-client-info>div{display:flex;justify-content:space-between;gap:10px;padding:8px 10px;background:var(--surface-2);border-radius:9px}.cart-client-info span{font-size:10px;color:var(--muted)}.cart-client-info b{font-size:11px;text-align:right}.cart-list{flex:1;min-height:130px;overflow-y:auto;padding-right:4px}.product-line{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:11px;margin-bottom:8px}.row{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.venta-observaciones{min-height:64px;margin-bottom:10px}.cart-total{display:flex;justify-content:space-between;align-items:end;padding:16px 0;border-top:1px solid var(--border)}.cart-total span{font-weight:700;color:var(--muted)}.cart-total strong{font-size:30px;color:var(--primary)}.checkout-btn{width:100%;justify-content:space-between;background:var(--accent);font-size:14px}.item{padding:15px;border:1px solid var(--border);border-radius:13px;margin-bottom:10px;background:#fff}.item.anulada,.anulada{opacity:.72;background:var(--danger-bg)}.edit-actions,.button-row,.config-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.edit-actions .btn{flex:1}.btn-icon{flex:0 0 44px!important;padding:10px}.client-account,.report-box{background:var(--surface-2);border:1px solid var(--border);border-radius:13px;padding:14px;margin-bottom:10px}.accounts-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.more-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.more-option{border:1px solid var(--border);background:var(--surface-2);border-radius:15px;padding:22px;text-align:left;display:flex;align-items:center;gap:14px;color:var(--text);cursor:pointer}.more-option i{width:48px;height:48px;border-radius:14px;background:#e7f5f1;color:var(--accent);display:grid;place-items:center;font-size:20px}.more-option strong,.more-option small{display:block}.more-option small{color:var(--muted);margin-top:4px}.report-widgets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.report-widget{background:var(--primary);color:#fff;border-radius:14px;padding:16px}.report-widget.available{background:var(--accent)}.report-widget.credit{background:#8a672d}.report-widget p{margin:0;font-size:11px;opacity:.75}.report-widget strong{font-size:22px;display:block;margin-top:7px}.report-details.is-hidden{display:none}.config-add-row,.config-product-add,.config-row{display:grid;gap:8px}.config-add-row{grid-template-columns:1fr auto}.config-product-add{grid-template-columns:1fr 130px auto}.config-row{background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:10px;margin-bottom:8px}.config-row.client{grid-template-columns:1fr auto}.config-row.product{grid-template-columns:1fr 120px auto}.config-row input{margin:0}.edit-product-line{background:var(--surface-2);border:1px solid var(--border);border-radius:14px;padding:13px;margin-bottom:10px}.edit-product-grid{display:grid;grid-template-columns:1fr 90px 120px;gap:8px}.edit-product-grid input{margin:0}.pos-modal-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(8,31,30,.72);overflow-y:auto;animation:fadeIn .18s ease}@keyframes fadeIn{from{opacity:0}to{opacity:1}}.pos-modal-box{width:min(100%,680px);max-height:calc(100vh - 36px);overflow-y:auto;background:#fff;border-radius:22px;padding:22px;box-shadow:0 30px 90px rgba(0,0,0,.35);animation:modalIn .2s ease}@keyframes modalIn{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}.pos-modal-header{display:flex;justify-content:space-between;gap:14px;margin-bottom:16px}.pos-modal-header h2,.pos-modal-header p{margin:0}.pos-modal-header p{color:var(--muted);margin-top:5px}.pos-close-btn{position:static!important;flex:0 0 42px;width:42px;height:42px;border:0;border-radius:11px;background:#edf2f1;color:var(--text);font-size:22px}.pos-method-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.pos-method-btn{position:static!important;min-width:0;width:100%;min-height:105px;border:1px solid var(--border);background:var(--surface-2);color:var(--primary);border-radius:15px;padding:15px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;cursor:pointer}.pos-method-btn:hover{border-color:var(--accent);background:#eef8f5}.pos-method-btn.mixed{grid-column:1/-1}.pos-method-btn .key{background:var(--primary);color:#fff;border-radius:7px;padding:4px 8px;font-size:11px}.pos-total-box{display:flex;justify-content:space-between;align-items:center;background:var(--primary);color:#fff;border-radius:14px;padding:14px 16px;margin-bottom:16px}.pos-total-box strong{font-size:27px}.client-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;max-height:55vh;overflow-y:auto}.client-result-card{position:static!important;width:100%;border:1px solid var(--border);background:var(--surface-2);color:var(--text);border-radius:13px;padding:12px;display:flex;align-items:center;gap:11px;text-align:left}.client-shortcut{flex:0 0 32px;width:32px;height:32px;border-radius:9px;background:var(--primary);color:#fff;display:grid;place-items:center}.client-result-main{display:flex;flex-direction:column;gap:3px;min-width:0}.client-result-main small{color:var(--muted)}.pos-search,.pos-payment-input{font-size:18px;font-weight:700}.pos-back-btn{position:static!important;border:0;background:#edf2f1;color:var(--text);border-radius:9px;padding:9px 12px;margin-bottom:12px}.pos-change-box{display:flex;justify-content:space-between;background:#edf6f4;border-radius:12px;padding:13px;margin:12px 0}.pos-change-box strong{color:var(--accent);font-size:19px}.empty-pos-message{padding:20px;text-align:center;color:var(--muted);background:var(--surface-2);border-radius:12px}.sidebar-backdrop{display:none}
@media(max-width:1200px){.dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.products-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.pos-layout{grid-template-columns:minmax(0,1fr) 350px}}
@media(max-width:980px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none}.sidebar-backdrop.open{display:block;position:fixed;inset:0;background:rgba(0,0,0,.42);z-index:250}.main-shell{margin-left:0}.mobile-menu-btn{display:grid}.topbar{padding:0 18px}.container{padding:20px}.pos-layout{grid-template-columns:1fr}.pos-cart-panel{position:static;max-height:none}.dashboard-columns,.report-columns,.settings-grid{grid-template-columns:1fr}.product-search-bar{grid-template-columns:1fr 78px 120px}.add-product-btn{grid-column:1/-1}.products-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.topbar{height:72px}.topbar-title h1{font-size:18px}.topbar-title p,.server-pill{display:none}.container{padding:14px}.dashboard-grid{grid-template-columns:1fr}.metric-card{padding:15px}.quick-actions,.accounts-grid,.more-grid{grid-template-columns:1fr}.products-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.product-search-bar{grid-template-columns:1fr 80px}.price-field{grid-column:1/-1}.pos-heading{flex-direction:column;align-items:stretch}.pos-client-summary{justify-content:space-between}.report-widgets{grid-template-columns:1fr}.config-add-row,.config-product-add,.config-row.client,.config-row.product,.edit-product-grid{grid-template-columns:1fr}.client-results{grid-template-columns:1fr}.pos-method-grid{grid-template-columns:1fr}.pos-method-btn.mixed{grid-column:auto}.pos-modal-overlay{align-items:flex-start;padding:9px}.pos-modal-box{max-height:calc(100vh - 18px);padding:16px;border-radius:17px}}
@media(max-width:440px){.products-grid{grid-template-columns:1fr}.product-search-bar{grid-template-columns:1fr}.compact-field,.price-field,.add-product-btn{grid-column:1}.topbar-actions .icon-btn{display:none}.cart-total strong{font-size:26px}}


/* Flujo rápido de búsqueda, lector y cantidades */
.prepared-quantity{
    align-self:center;
    padding:10px 12px;
    border:1px solid #a7d9cf;
    border-radius:12px;
    background:#eaf8f4;
    color:#0f5f55;
    font-size:13px;
    font-weight:700;
    white-space:nowrap;
}
.prepared-quantity[hidden]{display:none!important}
.pos-toast-container{
    position:fixed;
    top:18px;
    right:18px;
    z-index:3000;
    width:min(360px,calc(100vw - 36px));
    pointer-events:none;
}
.pos-toast{
    margin-bottom:9px;
    padding:12px 14px;
    border-radius:12px;
    background:#123c3a;
    color:#fff;
    box-shadow:0 12px 30px rgba(15,45,43,.25);
    font-weight:700;
    font-size:14px;
    animation:posToastIn .18s ease-out;
}
.pos-toast.warning{background:#9a6700}
.pos-toast.error{background:#a33a3a}
.pos-toast.success{background:#13745f}
.product-card-pos.keyboard-selected{
    outline:3px solid #2db49b;
    outline-offset:2px;
    border-color:#14866d;
}
@keyframes posToastIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:700px){
    .prepared-quantity{width:100%;text-align:center}
    .pos-toast-container{top:10px;right:10px;width:calc(100vw - 20px)}
}

/* Catálogo de productos: código interno, código de barras y costos */
.product-catalog-form{
    grid-template-columns:minmax(180px,1.5fr) minmax(120px,.8fr) minmax(170px,1fr) 125px 125px auto;
    align-items:end;
    margin-bottom:16px;
}
.product-catalog-form input{margin:0;}
.product-catalog-row{
    grid-template-columns:minmax(180px,1.5fr) minmax(120px,.8fr) minmax(170px,1fr) 120px 120px auto!important;
    align-items:end;
}
.config-field{min-width:0;}
.config-field label{font-size:10px;color:var(--muted);margin:0 0 5px;}
.product-catalog-row .config-actions{margin:0;align-self:end;}
.product-catalog-row .config-actions .btn{min-height:44px;}
@media(max-width:1200px){
    .product-catalog-form,.product-catalog-row{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
    .product-catalog-form .btn,.product-catalog-row .config-actions{grid-column:1/-1;}
}
@media(max-width:700px){
    .product-catalog-form,.product-catalog-row{grid-template-columns:1fr!important;}
    .product-catalog-form .btn,.product-catalog-row .config-actions{grid-column:auto;}
}


/* Módulo independiente de productos */
.products-module-heading{align-items:center}
.products-count-pill{display:inline-flex;align-items:center;gap:8px;background:#eaf7f3;color:var(--accent);border:1px solid #cfe9e2;border-radius:999px;padding:9px 13px;font-size:12px;font-weight:800;white-space:nowrap}
.product-module-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:start}
.product-module-search .search-field input{margin:0;padding-left:42px}
.product-module-search .btn{min-width:110px}
.products-editor-list{display:grid;gap:10px}
.products-editor-list .product-catalog-row{margin:0}
.empty-products-config{padding:34px 18px;border:1px dashed var(--border);border-radius:14px;background:var(--surface-2);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted);gap:7px}
.empty-products-config i{font-size:24px;color:var(--accent)}
.empty-products-config strong{color:var(--text)}
.empty-products-config span{font-size:12px}
@media(max-width:700px){.products-module-heading{align-items:flex-start}.product-module-search{grid-template-columns:1fr}.product-module-search .btn{width:100%}}


/* ===== Interfaz POS MySQL mejorada ===== */
.shortcut-dock{
    position:fixed;left:260px;right:0;bottom:0;z-index:80;
    display:flex;gap:14px;align-items:center;justify-content:center;flex-wrap:wrap;
    padding:8px 16px;background:rgba(17,24,39,.96);color:#fff;
    box-shadow:0 -8px 25px rgba(0,0,0,.12);font-size:12px
}
.shortcut-dock span{display:flex;align-items:center;gap:5px;white-space:nowrap}
.shortcut-dock kbd{background:#fff;color:#111827;border-radius:5px;padding:3px 6px;font-weight:800;box-shadow:inset 0 -1px 0 #cbd5e1}
.main-shell{padding-bottom:44px}

.report-filter-card{position:sticky;top:76px;z-index:15}
.report-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:14px}
.report-filter-grid label{display:block;font-size:12px;font-weight:700;color:#64748b;margin-bottom:6px}
.report-filter-grid input,.report-filter-grid select{width:100%;height:43px;border:1px solid #dbe2ea;border-radius:10px;padding:0 12px;background:#fff}
.report-widgets-expanded{grid-template-columns:repeat(4,minmax(180px,1fr))}
.report-widget small{display:block;margin-top:6px;color:#64748b}
.payment-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;margin-top:16px}
.payment-summary-grid>div{display:flex;justify-content:space-between;gap:12px;padding:14px;border-radius:12px;background:#f8fafc;border:1px solid #e2e8f0}
.payment-summary-grid span{color:#64748b}.payment-summary-grid strong{color:#0f172a}
.report-note{margin-top:14px;padding:12px 14px;border-radius:10px;background:#eff6ff;color:#1e40af;font-size:13px}
.rank-list{display:flex;flex-direction:column;gap:8px}
.rank-row{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;padding:11px;border:1px solid #e5e7eb;border-radius:11px;background:#fff}
.rank-number{width:30px;height:30px;border-radius:9px;background:#111827;color:#fff;display:grid;place-items:center;font-weight:800}
.rank-row div{display:flex;flex-direction:column}.rank-row small{color:#64748b;margin-top:2px}
.report-table-wrap{overflow:auto}
.report-table{width:100%;border-collapse:collapse}
.report-table th,.report-table td{text-align:left;padding:12px;border-bottom:1px solid #e5e7eb}
.report-table th{font-size:12px;text-transform:uppercase;color:#64748b;background:#f8fafc}
.pos-modal-overlay{z-index:1000}
.pos-modal-box{max-height:90vh;overflow:auto}
.pos-method-btn:focus-visible,.client-result-card:focus-visible{outline:3px solid #f59e0b;outline-offset:2px}

@media(max-width:1000px){
    .shortcut-dock{left:0;overflow-x:auto;justify-content:flex-start;flex-wrap:nowrap}
    .report-filter-grid,.report-widgets-expanded,.payment-summary-grid{grid-template-columns:repeat(2,minmax(140px,1fr))}
}
@media(max-width:620px){
    .shortcut-dock{display:none}
    .main-shell{padding-bottom:0}
    .report-filter-card{position:static}
    .report-filter-grid,.report-widgets-expanded,.payment-summary-grid{grid-template-columns:1fr}
}


/* ===== Versión 2.2: carrito flotante y menú ordenado ===== */
.mobile-cart-fab{
    display:none;
    position:fixed;
    right:18px;
    bottom:76px;
    z-index:850;
    min-width:155px;
    min-height:58px;
    padding:10px 14px;
    border:0;
    border-radius:18px;
    background:#111827;
    color:#fff;
    box-shadow:0 14px 35px rgba(15,23,42,.35);
    align-items:center;
    gap:10px;
    cursor:pointer;
    transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.mobile-cart-fab i{font-size:21px}
.mobile-cart-fab-text{display:flex;flex-direction:column;align-items:flex-start;line-height:1.05}
.mobile-cart-fab-text small{font-size:11px;opacity:.78}
.mobile-cart-fab-text strong{font-size:15px;margin-top:4px}
.mobile-cart-badge{
    position:absolute;
    right:-7px;
    top:-7px;
    min-width:25px;
    height:25px;
    padding:0 6px;
    border-radius:999px;
    display:grid;
    place-items:center;
    background:#f59e0b;
    color:#111827;
    border:3px solid #fff;
    font-size:12px;
    font-weight:900;
}
.mobile-cart-fab.has-items{background:#047857}
.mobile-cart-fab:active{transform:scale(.96)}
.mobile-cart-highlight{
    animation:mobileCartPulse 1.1s ease;
}
@keyframes mobileCartPulse{
    0%,100%{box-shadow:var(--card-shadow,0 10px 30px rgba(0,0,0,.08))}
    40%{box-shadow:0 0 0 6px rgba(245,158,11,.35),0 18px 40px rgba(0,0,0,.18)}
}

@media(max-width:760px){
    .mobile-cart-fab.is-visible{display:flex}
    .pos-cart-panel{scroll-margin-top:82px}
    #venta{padding-bottom:92px}
}


/* ===== Versión 2.3: stock y rentabilidad de productos ===== */
.product-catalog-form{
    grid-template-columns:repeat(3,minmax(160px,1fr));
}
.product-catalog-row{
    grid-template-columns:repeat(3,minmax(150px,1fr));
}
.profit-preview{
    min-height:64px;
    padding:10px 12px;
    border-radius:11px;
    border:1px solid #dbe2ea;
    background:#f8fafc;
    display:flex;
    flex-direction:column;
    justify-content:center;
}
.profit-preview span{
    font-size:11px;
    text-transform:uppercase;
    letter-spacing:.04em;
    color:#64748b;
    font-weight:800;
}
.profit-preview strong{
    font-size:20px;
    margin-top:3px;
    color:#0f172a;
}
.profit-preview small{
    display:block;
    margin-top:3px;
    color:#64748b;
    line-height:1.25;
}
.profit-preview.high{background:#ecfdf5;border-color:#a7f3d0}
.profit-preview.high strong{color:#047857}
.profit-preview.medium{background:#eff6ff;border-color:#bfdbfe}
.profit-preview.medium strong{color:#1d4ed8}
.profit-preview.low{background:#fffbeb;border-color:#fde68a}
.profit-preview.low strong{color:#b45309}
.profit-preview.negative{background:#fef2f2;border-color:#fecaca}
.profit-preview.negative strong{color:#b91c1c}
.profit-preview.neutral strong{color:#64748b}

@media(max-width:1050px){
    .product-catalog-form,.product-catalog-row{
        grid-template-columns:repeat(2,minmax(150px,1fr));
    }
}
@media(max-width:620px){
    .product-catalog-form,.product-catalog-row{
        grid-template-columns:1fr;
    }
}


/* ===== Versión 2.4: tabla compacta de productos ===== */
.product-table-wrap{
    width:100%;
    overflow:auto;
    border:1px solid #e2e8f0;
    border-radius:12px;
    background:#fff;
}
.product-table{
    width:100%;
    min-width:1080px;
    border-collapse:separate;
    border-spacing:0;
}
.product-table thead th{
    position:sticky;
    top:0;
    z-index:3;
    padding:9px 7px;
    background:#f8fafc;
    border-bottom:1px solid #dbe2ea;
    color:#475569;
    font-size:10px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.035em;
    text-align:left;
    white-space:nowrap;
}
.product-table tbody td{
    padding:6px 5px;
    border-bottom:1px solid #edf2f7;
    vertical-align:middle;
}
.product-table tbody tr:hover{background:#f8fafc}
.product-table tbody tr:last-child td{border-bottom:0}

.product-table-input{
    width:100%;
    height:32px;
    padding:4px 7px;
    border:1px solid transparent;
    border-radius:6px;
    background:transparent;
    font-size:12px;
    color:#0f172a;
}
.product-table-input:hover{
    background:#fff;
    border-color:#dbe2ea;
}
.product-table-input:focus{
    outline:0;
    background:#fff;
    border-color:#64748b;
    box-shadow:0 0 0 2px rgba(100,116,139,.12);
}
.product-name-input{min-width:165px;font-weight:700}
.product-code-input{min-width:78px}
.product-barcode-input{min-width:125px}
.product-number-input{min-width:78px;text-align:right}
.product-stock-input{min-width:70px;text-align:right}

.profit-pill{
    min-width:82px;
    padding:5px 7px;
    border-radius:7px;
    border:1px solid #dbe2ea;
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    line-height:1.05;
    background:#f8fafc;
}
.profit-pill strong{font-size:12px}
.profit-pill small{margin-top:3px;font-size:9px;color:#64748b}
.profit-pill.high{background:#ecfdf5;border-color:#a7f3d0;color:#047857}
.profit-pill.medium{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}
.profit-pill.low{background:#fffbeb;border-color:#fde68a;color:#b45309}
.profit-pill.negative{background:#fef2f2;border-color:#fecaca;color:#b91c1c}
.profit-pill.neutral{color:#64748b}

.product-table-actions{
    display:flex;
    justify-content:center;
    gap:4px;
    white-space:nowrap;
}
.icon-action-btn{
    width:27px;
    height:27px;
    border:0;
    border-radius:6px;
    display:inline-grid;
    place-items:center;
    cursor:pointer;
    font-size:11px;
}
.icon-action-btn.save{background:#dcfce7;color:#166534}
.icon-action-btn.delete{background:#fee2e2;color:#991b1b}
.icon-action-btn:hover{filter:brightness(.96)}
.product-actions-head{text-align:center!important}

@media(max-width:760px){
    .product-table{min-width:0}
    .product-table thead{display:none}
    .product-table,.product-table tbody,.product-table tr,.product-table td{
        display:block;width:100%;
    }
    .product-table tbody tr{
        padding:9px;
        border-bottom:1px solid #dbe2ea;
    }
    .product-table tbody td{
        display:grid;
        grid-template-columns:86px minmax(0,1fr);
        gap:7px;
        align-items:center;
        padding:3px 0;
        border:0;
    }
    .product-table tbody td::before{
        content:attr(data-label);
        font-size:9px;
        text-transform:uppercase;
        font-weight:800;
        color:#64748b;
    }
    .product-table-input{
        height:31px;
        border-color:#e2e8f0;
        background:#fff;
    }
    .product-table-actions{justify-content:flex-end}
    .profit-pill{justify-self:end}
}


/* ===== Versión 2.5: creación rápida desde Punto de Venta ===== */
.create-from-search{
    min-height:150px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:9px;
    text-align:center;
}
.create-from-search>i{
    width:42px;
    height:42px;
    border-radius:12px;
    display:grid;
    place-items:center;
    background:#ecfdf5;
    color:#047857;
    font-size:18px;
}
.create-from-search strong{font-size:16px;color:#0f172a}
.create-from-search span{font-size:13px;color:#64748b;max-width:390px}
.create-from-search .btn{margin-top:4px}

.quick-create-product-modal{max-width:680px}
.quick-create-product-form{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:13px;
    margin-top:12px;
}
.quick-create-product-form .config-field{
    display:flex;
    flex-direction:column;
    gap:6px;
}
.quick-create-product-form label{
    font-size:12px;
    font-weight:800;
    color:#475569;
}
.quick-create-product-form input{
    width:100%;
    height:42px;
    padding:0 11px;
    border:1px solid #dbe2ea;
    border-radius:9px;
    background:#fff;
}
.quick-create-product-form small{font-size:10px;color:#64748b}
.pos-modal-footer{
    display:flex;
    justify-content:flex-end;
    gap:9px;
    margin-top:18px;
    padding-top:14px;
    border-top:1px solid #e5e7eb;
}
@media(max-width:620px){
    .quick-create-product-form{grid-template-columns:1fr}
    .quick-create-product-modal{width:min(94vw,680px)}
}


/* ===== Versión 2.6: entrada rápida y vista previa ===== */
.product-entry-preview{
    grid-column:1 / -1;
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:3px 14px;
    align-items:center;
    padding:10px 12px;
    border:1px solid #bbf7d0;
    border-radius:10px;
    background:#f0fdf4;
}
.product-entry-preview[hidden]{display:none}
.product-entry-preview span{
    font-size:12px;
    font-weight:800;
    color:#166534;
}
.product-entry-preview strong{
    grid-row:1 / span 2;
    grid-column:2;
    font-size:19px;
    color:#047857;
}
.product-entry-preview small{
    font-size:11px;
    color:#64748b;
}
.product-entry-preview.not-found{
    border-color:#fde68a;
    background:#fffbeb;
}
.product-entry-preview.not-found span,
.product-entry-preview.not-found strong{color:#b45309}
.product-entry-preview.selected{
    border-color:#bfdbfe;
    background:#eff6ff;
}
.product-entry-preview.selected span,
.product-entry-preview.selected strong{color:#1d4ed8}
.product-card-pos.keyboard-selected{
    outline:3px solid #2563eb;
    outline-offset:2px;
    transform:translateY(-1px);
}
@media(max-width:620px){
    .product-entry-preview{
        grid-template-columns:1fr auto;
        padding:9px 10px;
    }
    .product-entry-preview strong{font-size:16px}
}


/* ===== Versión 2.7: cuenta cliente y cobranza móvil ===== */
.account-summary-grid{
    display:grid;
    grid-template-columns:2fr repeat(3,1fr);
    gap:10px;
    margin-bottom:18px;
}
.account-summary-grid>div{
    padding:13px;
    border:1px solid #e2e8f0;
    border-radius:11px;
    background:#fff;
    display:flex;
    flex-direction:column;
    gap:5px;
}
.account-summary-grid span{
    font-size:10px;
    text-transform:uppercase;
    font-weight:800;
    color:#64748b;
}
.account-summary-grid strong{
    font-size:17px;
    color:#0f172a;
}
.account-summary-main strong{font-size:19px}

.account-section,
.account-payment-section{
    margin-top:16px;
    padding:15px;
    border:1px solid #e2e8f0;
    border-radius:13px;
    background:#fff;
}
.account-section-title,
.account-payment-header{
    display:flex;
    justify-content:space-between;
    gap:12px;
    align-items:flex-start;
    margin-bottom:13px;
}
.account-section-title h3,
.account-payment-header h3{margin:0 0 3px}
.account-section-title p,
.account-payment-header p{margin:0}

.account-sales-list{
    display:flex;
    flex-direction:column;
    gap:10px;
}
.account-sale-card{
    border:1px solid #e2e8f0;
    border-radius:11px;
    padding:13px;
}
.account-sale-head{
    display:flex;
    justify-content:space-between;
    gap:10px;
    align-items:flex-start;
    margin-bottom:9px;
}
.account-sale-head>div{
    display:flex;
    flex-direction:column;
    gap:3px;
}
.account-sale-balance{
    padding:5px 8px;
    border-radius:7px;
    background:#fff7ed;
    color:#c2410c;
    font-size:12px;
    font-weight:900;
    white-space:nowrap;
}

.account-payment-total{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
}
.account-payment-total span{
    font-size:10px;
    text-transform:uppercase;
    color:#64748b;
    font-weight:800;
}
.account-payment-total strong{
    font-size:20px;
    color:#b91c1c;
}
.account-action-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}
.account-action-choice{
    width:100%;
    min-height:72px;
    padding:11px;
    border:1px solid #dbe2ea;
    border-radius:11px;
    background:#fff;
    display:flex;
    align-items:center;
    gap:10px;
    text-align:left;
    cursor:pointer;
}
.account-action-choice:hover,
.account-action-choice.active{
    border-color:#94a3b8;
    background:#f8fafc;
}
.account-action-choice span:not(.account-action-icon){
    display:flex;
    flex-direction:column;
    gap:3px;
}
.account-action-choice strong{font-size:14px;color:#0f172a}
.account-action-choice small{font-size:11px;color:#64748b}
.account-action-icon{
    width:34px;
    height:34px;
    flex:0 0 34px;
    border-radius:9px;
    display:grid;
    place-items:center;
    font-size:14px;
}
.account-action-choice.abono .account-action-icon{
    background:#fef3c7;
    color:#b45309;
}
.account-action-choice.completo .account-action-icon{
    background:#dcfce7;
    color:#15803d;
}
.account-payment-panel{
    margin-top:12px;
    padding:13px;
    border:1px solid #dbe2ea;
    border-radius:11px;
    background:#f8fafc;
}
.account-payment-panel[hidden]{display:none}
.account-payment-panel-title{
    display:flex;
    align-items:center;
    gap:9px;
    margin-bottom:12px;
}
.account-payment-panel-title>i{
    width:31px;
    height:31px;
    border-radius:8px;
    display:grid;
    place-items:center;
    background:#e2e8f0;
}
.account-payment-panel-title>div{
    display:flex;
    flex-direction:column;
    gap:2px;
}
.account-payment-panel-title small{color:#64748b}
.account-payment-fields{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}
.account-payment-fields.single{grid-template-columns:1fr}
.account-payment-buttons{
    display:flex;
    justify-content:flex-end;
    gap:8px;
    margin-top:12px;
}
.account-bottom-actions{
    margin-top:16px;
    display:flex;
    justify-content:flex-start;
}

@media(max-width:760px){
    .account-summary-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
    .account-summary-main{grid-column:1 / -1}
    .account-section,
    .account-payment-section{
        padding:11px;
        border-radius:11px;
    }
    .account-action-grid{
        grid-template-columns:1fr 1fr;
        gap:7px;
    }
    .account-action-choice{
        min-height:64px;
        padding:8px;
        gap:7px;
    }
    .account-action-icon{
        width:29px;
        height:29px;
        flex-basis:29px;
        font-size:12px;
    }
    .account-action-choice strong{font-size:12px}
    .account-action-choice small{font-size:9px}
    .account-payment-fields{grid-template-columns:1fr}
    .account-payment-buttons{
        display:grid;
        grid-template-columns:1fr 1fr;
    }
    .account-payment-buttons .btn{
        width:100%;
        padding-left:8px;
        padding-right:8px;
        font-size:11px;
    }
    .account-sale-head{
        align-items:center;
    }
    .account-section-title,
    .account-payment-header{
        align-items:center;
    }
}
@media(max-width:420px){
    .account-summary-grid{grid-template-columns:1fr 1fr}
    .account-action-choice{
        flex-direction:column;
        align-items:center;
        justify-content:center;
        text-align:center;
    }
    .account-action-choice span:not(.account-action-icon){
        align-items:center;
    }
    .account-action-choice small{display:none}
    .account-payment-total strong{font-size:16px}
}
.switch-control{position:relative;width:48px;height:27px}.switch-control input{opacity:0}.switch-slider{position:absolute;inset:0;background:#cbd5e1;border-radius:99px}.switch-slider:before{content:"";position:absolute;width:21px;height:21px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s}.switch-control input:checked+.switch-slider{background:#16a34a}.switch-control input:checked+.switch-slider:before{transform:translateX(21px)}.commission-row{display:grid;grid-template-columns:180px 1fr;gap:12px}.commission-example{padding:10px;border:1px solid #ddd;border-radius:10px;display:flex;flex-direction:column}.supplier-grid,.purchase-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.purchase-grid .wide{grid-column:span 2}.supplier-card,.purchase-card{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:10px;border:1px solid #e2e8f0;border-radius:10px;margin-top:8px}.supplier-card small,.purchase-card small{display:block;color:#64748b}.purchase-summary{display:flex;justify-content:space-between;margin-bottom:10px}.card-fee-summary>div{display:flex;justify-content:space-between;padding:8px;background:#f8fafc;margin:5px 0}.card-fee-summary .total{background:#ecfdf5}@media(max-width:700px){.supplier-grid,.purchase-grid,.commission-row{grid-template-columns:1fr}.purchase-grid .wide{grid-column:auto}}
.sii-receipt-field{margin:0 0 16px;padding:13px;border:1px solid #bfdbfe;border-radius:12px;background:#eff6ff}.sii-receipt-field label{color:#1e3a8a}.sii-receipt-field input{margin-bottom:5px}.sii-badge{background:#dbeafe;color:#1e40af;gap:5px}.sii-payment-reference{color:#1d4ed8;font-weight:700}.sii-report-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.sii-report-summary>div{padding:13px;border:1px solid #e2e8f0;border-radius:11px;background:#f8fafc;display:flex;flex-direction:column}.sii-report-summary span{font-size:10px;text-transform:uppercase;color:#64748b;font-weight:800}.sii-report-summary strong{font-size:18px}.sii-report-summary .final{background:#ecfdf5;border-color:#a7f3d0}.report-table tfoot th{background:#f8fafc;font-weight:900}@media(max-width:760px){.sii-report-summary{grid-template-columns:1fr 1fr}.account-payment-fields{grid-template-columns:1fr}}@media(max-width:440px){.sii-report-summary{grid-template-columns:1fr}}

.dashboard-chart-heading{align-items:center}.dashboard-chart-total{display:flex;flex-direction:column;align-items:flex-end}.dashboard-chart-total span{font-size:10px;text-transform:uppercase;font-weight:800;color:var(--muted)}.dashboard-chart-total strong{font-size:22px;color:var(--primary)}.sales-bar-chart{padding-top:8px}.sales-chart-bars{height:280px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:14px;align-items:end;border-bottom:1px solid var(--border);background:linear-gradient(to top,transparent 24.5%,rgba(102,119,132,.10) 25%,transparent 25.5%,transparent 49.5%,rgba(102,119,132,.10) 50%,transparent 50.5%,transparent 74.5%,rgba(102,119,132,.10) 75%,transparent 75.5%)}.sales-chart-column{height:100%;display:grid;grid-template-rows:28px 1fr 20px 18px;align-items:end;text-align:center}.sales-chart-value{font-size:10px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sales-chart-track{width:min(58px,72%);height:100%;margin:auto;display:flex;align-items:flex-end;background:rgba(20,134,109,.08);border-radius:9px 9px 0 0;overflow:hidden}.sales-chart-bar{width:100%;background:var(--accent);border-radius:9px 9px 0 0;transition:height .35s}.sales-chart-day{font-size:11px;font-weight:800;padding-top:5px}.sales-chart-count{font-size:9px;color:var(--muted)}@media(max-width:760px){.dashboard-chart-heading{flex-direction:column;align-items:flex-start}.dashboard-chart-total{align-items:flex-start}.sales-bar-chart{overflow-x:auto}.sales-chart-bars{min-width:620px;height:245px}}


/* ===== Versión 2.9.2: productos con precio variable ===== */
.product-card-pos .product-price.variable{
    display:flex;
    align-items:center;
    gap:6px;
    color:#b45309;
    font-size:13px;
}
.product-card-pos:has(.product-price.variable){
    border-style:dashed;
    border-color:#f2c56b;
    background:#fffbeb;
}
.variable-price-modal .pos-modal-box{
    width:min(100%,560px);
}
.variable-price-product{
    display:flex;
    align-items:center;
    gap:13px;
    padding:14px;
    margin-bottom:15px;
    border:1px solid #fde68a;
    border-radius:13px;
    background:#fffbeb;
}
.variable-price-icon{
    width:46px;
    height:46px;
    flex:0 0 46px;
    display:grid;
    place-items:center;
    border-radius:12px;
    background:#fef3c7;
    color:#b45309;
    font-size:19px;
}
.variable-price-product span,
.variable-price-product strong,
.variable-price-product small{
    display:block;
}
.variable-price-product span{
    font-size:10px;
    text-transform:uppercase;
    font-weight:800;
    color:#92400e;
}
.variable-price-product strong{
    margin-top:3px;
    font-size:18px;
}
.variable-price-product small{
    margin-top:3px;
    color:#64748b;
}
.variable-price-form{
    grid-template-columns:1.4fr .6fr;
}
.variable-price-form input{
    font-size:18px;
    font-weight:800;
}
.variable-price-total{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:14px 16px;
    margin-top:14px;
    border-radius:12px;
    background:var(--primary);
    color:#fff;
}
.variable-price-total span{font-weight:700}
.variable-price-total strong{font-size:24px}
@media(max-width:620px){
    .variable-price-form{grid-template-columns:1fr}
}

/* V2.9.3: productos vendidos por peso */
.weight-product-check{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid #dbe2ea;border-radius:11px;background:#f8fafc;margin:0}.weight-product-check input{width:18px;height:18px;margin:0}.weight-product-check span,.weight-product-check strong,.weight-product-check small{display:block}.weight-product-check small{color:#64748b;margin-top:2px}.weight-checkbox-cell{text-align:center}.table-weight-check{display:inline-flex;align-items:center;gap:6px;margin:0;font-size:11px}.table-weight-check input{width:17px;height:17px;margin:0}.weight-product-badge{display:inline-flex!important;align-items:center;gap:5px;margin-top:7px!important;padding:5px 7px;border-radius:7px;background:#fef3c7;color:#92400e!important;font-weight:800}.weight-price-summary{display:flex;justify-content:space-between;align-items:center;padding:15px 16px;border-radius:12px;background:var(--primary);color:#fff;margin-bottom:16px}.weight-price-summary strong{font-size:24px}.weight-entry-grid{display:grid;grid-template-columns:1fr 38px 1fr;align-items:center;gap:10px}.weight-entry-separator{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:#eef3f1;color:#64748b;font-weight:800}.weight-calculation{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.weight-calculation>div{padding:13px;border:1px solid #dbe2ea;border-radius:11px;background:#f8fafc;display:flex;justify-content:space-between}.weight-calculation span{color:#64748b;font-size:12px}.weight-calculation strong{font-size:17px}.weight-product-modal .pos-modal-box{width:min(100%,650px)}@media(max-width:620px){.weight-entry-grid{grid-template-columns:1fr}.weight-entry-separator{margin:auto}.weight-calculation{grid-template-columns:1fr}}


/* ===== Versión 2.9.4: búsqueda y diseño del módulo Ventas ===== */
.sales-history-heading{align-items:center}
.sales-history-summary{
    min-width:145px;
    padding:10px 13px;
    border:1px solid var(--border);
    border-radius:12px;
    background:var(--surface-2);
    text-align:right;
}
.sales-history-summary span,
.sales-history-summary strong{display:block}
.sales-history-summary span{
    font-size:10px;
    text-transform:uppercase;
    font-weight:800;
    color:var(--muted);
}
.sales-history-summary strong{
    margin-top:4px;
    font-size:21px;
    color:var(--primary);
}
.sales-filter-panel{
    display:grid;
    grid-template-columns:minmax(240px,1.5fr) minmax(145px,.7fr) minmax(145px,.7fr) auto;
    gap:10px;
    align-items:end;
    padding:13px;
    margin-bottom:16px;
    border:1px solid var(--border);
    border-radius:14px;
    background:var(--surface-2);
}
.sales-filter-panel label{
    margin-bottom:5px;
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.04em;
    color:var(--muted);
}
.sales-filter-panel input{margin:0;height:44px}
.sales-filter-search .search-field input{padding-left:42px}
.sales-clear-filter{height:44px;white-space:nowrap}
.sales-list{display:grid;gap:10px}
.sales-record{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:14px;
    padding:14px;
    border:1px solid var(--border);
    border-radius:14px;
    background:#fff;
}
.sales-record.anulada{background:var(--danger-bg);opacity:.78}
.sales-record-header{
    display:flex;
    justify-content:space-between;
    gap:14px;
    align-items:flex-start;
}
.sales-record-label{
    display:block;
    font-size:9px;
    text-transform:uppercase;
    letter-spacing:.06em;
    font-weight:800;
    color:var(--muted);
}
.sales-record h3{
    margin:3px 0 0;
    font-size:16px;
}
.sales-record-total{
    font-size:19px;
    font-weight:850;
    color:var(--primary);
    white-space:nowrap;
}
.sales-record-meta{
    display:flex;
    align-items:center;
    gap:7px;
    flex-wrap:wrap;
    margin-top:8px;
}
.sales-record-meta>span:not(.badge){
    font-size:11px;
    color:var(--muted);
}
.sales-record-meta i{margin-right:3px}
.sales-products-details{
    margin-top:10px;
    border-top:1px solid var(--border);
    padding-top:8px;
}
.sales-products-details summary{
    cursor:pointer;
    color:var(--accent);
    font-size:11px;
    font-weight:800;
    list-style:none;
}
.sales-products-details summary::-webkit-details-marker{display:none}
.sales-products-list{
    margin-top:8px;
    padding:9px;
    border-radius:9px;
    background:var(--surface-2);
}
.sales-record-actions{
    display:flex;
    align-items:flex-start;
    gap:6px;
}
.sales-icon-btn{
    width:34px;
    height:34px;
    border:0;
    border-radius:9px;
    display:grid;
    place-items:center;
    cursor:pointer;
    font-size:13px;
    transition:.15s;
}
.sales-icon-btn:hover{transform:translateY(-1px);filter:brightness(.97)}
.sales-icon-btn.print{background:#dcfce7;color:#166534}
.sales-icon-btn.edit{background:#fef3c7;color:#92400e}
.sales-icon-btn.cancel{background:#fee2e2;color:#991b1b}
.sales-cancel-info{
    margin-top:10px;
    padding:9px 10px;
    border-radius:9px;
    background:rgba(255,255,255,.6);
    color:#991b1b;
    font-size:11px;
}
.sales-empty{
    min-height:170px;
    display:flex;
    flex-direction:column;
    gap:6px;
    align-items:center;
    justify-content:center;
}
.sales-empty i{font-size:22px;color:var(--accent)}
.sales-empty strong{color:var(--text)}

@media(max-width:900px){
    .sales-filter-panel{grid-template-columns:1fr 1fr}
    .sales-filter-search{grid-column:1/-1}
    .sales-clear-filter{width:100%}
}
@media(max-width:620px){
    .sales-history-heading{align-items:flex-start;flex-direction:column}
    .sales-history-summary{text-align:left}
    .sales-filter-panel{grid-template-columns:1fr}
    .sales-filter-search{grid-column:auto}
    .sales-record{grid-template-columns:1fr}
    .sales-record-actions{
        justify-content:flex-end;
        padding-top:8px;
        border-top:1px solid var(--border);
    }
    .sales-icon-btn{width:38px;height:38px}
}


/* ===== Versión 2.9.5: edición de proveedores ===== */
.supplier-list-heading{align-items:center}
.supplier-search{margin-bottom:14px}
.supplier-search input{margin:0;padding-left:42px}
.supplier-list{display:grid;gap:9px}
.supplier-card-improved{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:12px;
    padding:12px 13px;
    border:1px solid var(--border);
    border-radius:13px;
    background:#fff;
}
.supplier-card-main{
    display:flex;
    align-items:center;
    gap:11px;
    min-width:0;
}
.supplier-avatar{
    width:39px;
    height:39px;
    flex:0 0 39px;
    display:grid;
    place-items:center;
    border-radius:11px;
    background:#eaf7f3;
    color:var(--accent);
}
.supplier-card-info{min-width:0}
.supplier-card-info>strong{
    display:block;
    font-size:14px;
    color:var(--text);
    overflow-wrap:anywhere;
}
.supplier-meta{
    display:flex;
    flex-wrap:wrap;
    gap:5px 12px;
    margin-top:5px;
}
.supplier-meta span{
    font-size:10px;
    color:var(--muted);
}
.supplier-meta i{margin-right:3px}
.supplier-card-actions{
    display:flex;
    gap:5px;
}
.supplier-action-btn{
    width:32px;
    height:32px;
    border:0;
    border-radius:8px;
    display:grid;
    place-items:center;
    cursor:pointer;
    font-size:12px;
}
.supplier-action-btn.edit{background:#fef3c7;color:#92400e}
.supplier-action-btn.delete{background:#fee2e2;color:#991b1b}
.supplier-action-btn:hover{filter:brightness(.96);transform:translateY(-1px)}
.supplier-edit-modal .pos-modal-box{width:min(100%,720px)}
.supplier-edit-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:11px;
}
.supplier-edit-wide{grid-column:1/-1}
.supplier-edit-grid input,
.supplier-edit-grid textarea{margin:0}
.supplier-edit-grid textarea{min-height:90px}
@media(max-width:620px){
    .supplier-edit-grid{grid-template-columns:1fr}
    .supplier-edit-wide{grid-column:auto}
    .supplier-card-improved{grid-template-columns:1fr}
    .supplier-card-actions{
        justify-content:flex-end;
        padding-top:8px;
        border-top:1px solid var(--border);
    }
    .supplier-action-btn{width:38px;height:38px}
}


/* ===== Versión 2.9.6: módulo Compras detallado ===== */
.purchase-grid-detailed{grid-template-columns:repeat(3,minmax(0,1fr))}
.purchase-sii-check{
    display:flex!important;
    align-items:center;
    gap:10px;
    min-height:44px;
    padding:9px 11px;
    border:1px solid var(--border);
    border-radius:10px;
    background:var(--surface-2);
}
.purchase-sii-check input{width:18px;height:18px;margin:0}
.purchase-sii-check span,
.purchase-sii-check strong,
.purchase-sii-check small{display:block}
.purchase-sii-check small{margin-top:2px;color:var(--muted);font-size:9px}
.purchase-notes-label{display:block;margin-top:11px}
.purchase-notes-label textarea{margin-top:5px;min-height:92px}
.purchase-list-heading{align-items:center}
.purchase-search-field{margin-bottom:14px}
.purchase-search-field input{margin:0;padding-left:42px}
.purchase-list{display:grid;gap:10px}
.purchase-card-detailed{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:13px;
    padding:13px;
    border:1px solid var(--border);
    border-radius:13px;
    background:#fff;
}
.purchase-card-header{
    display:flex;
    justify-content:space-between;
    gap:12px;
}
.purchase-card-header strong{display:block;font-size:14px}
.purchase-card-header b{font-size:17px;color:var(--primary);white-space:nowrap}
.purchase-card-label{
    display:block;
    margin-bottom:3px;
    font-size:9px;
    text-transform:uppercase;
    font-weight:850;
    color:var(--muted);
}
.purchase-card-meta{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:6px 11px;
    margin-top:7px;
}
.purchase-card-meta>span:not(.badge){font-size:10px;color:var(--muted)}
.purchase-card-meta i{margin-right:3px}
.purchase-card-preview{
    margin:8px 0 0;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
    font-size:11px;
    color:var(--muted);
}
.purchase-sii-badge{background:#dcfce7;color:#166534}
.purchase-common-badge{background:#f1f5f9;color:#475569}
.purchase-card-actions{display:flex;gap:5px;align-items:flex-start}
.purchase-action-btn{
    width:32px;height:32px;border:0;border-radius:8px;
    display:grid;place-items:center;cursor:pointer;font-size:12px
}
.purchase-action-btn.detail{background:#e0f2fe;color:#075985}
.purchase-action-btn.edit{background:#fef3c7;color:#92400e}
.purchase-action-btn.delete{background:#fee2e2;color:#991b1b}
.purchase-action-btn:hover{filter:brightness(.96);transform:translateY(-1px)}
.purchase-detail-modal .pos-modal-box,
.purchase-edit-modal .pos-modal-box{width:min(100%,760px)}
.purchase-detail-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
}
.purchase-detail-grid>div,
.purchase-detail-description{
    padding:11px;
    border:1px solid var(--border);
    border-radius:10px;
    background:var(--surface-2);
}
.purchase-detail-grid span,
.purchase-detail-description span{display:block;font-size:9px;text-transform:uppercase;font-weight:800;color:var(--muted)}
.purchase-detail-grid strong,
.purchase-detail-description strong{display:block;margin-top:3px}
.purchase-detail-description{margin-top:9px}
.purchase-detail-description p{margin:5px 0 0;font-size:12px}
.purchase-detail-total{
    display:flex;justify-content:space-between;align-items:center;
    margin-top:10px;padding:14px;border-radius:11px;background:var(--primary);color:#fff
}
.purchase-detail-total strong{font-size:22px}
.purchase-edit-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:10px;
}
.purchase-edit-wide{grid-column:1/-1}
.purchase-edit-grid input,
.purchase-edit-grid select,
.purchase-edit-grid textarea{margin:0}
.purchase-edit-grid textarea{min-height:95px}
.edit-sii-check{margin-top:20px}
@media(max-width:800px){
    .purchase-grid-detailed{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
    .purchase-grid-detailed,
    .purchase-edit-grid,
    .purchase-detail-grid{grid-template-columns:1fr}
    .purchase-edit-wide{grid-column:auto}
    .purchase-card-detailed{grid-template-columns:1fr}
    .purchase-card-actions{
        justify-content:flex-end;
        border-top:1px solid var(--border);
        padding-top:8px;
    }
    .purchase-action-btn{width:38px;height:38px}
}


/* ===== Versión 2.9.7: crédito fiscal y balance IVA ===== */
.purchase-summary-expanded{
    display:flex;
    gap:9px;
    align-items:stretch;
}
.purchase-summary-expanded>div{
    min-width:150px;
    padding:10px 12px;
    border:1px solid var(--border);
    border-radius:11px;
    background:var(--surface-2);
}
.purchase-summary-expanded span,
.purchase-summary-expanded strong,
.purchase-summary-expanded small{display:block}
.purchase-summary-expanded span{
    font-size:9px;
    font-weight:850;
    text-transform:uppercase;
    color:var(--muted);
}
.purchase-summary-expanded strong{
    margin-top:3px;
    font-size:19px;
    color:var(--primary);
}
.purchase-summary-expanded small{
    margin-top:2px;
    font-size:9px;
    color:var(--muted);
}
.purchase-vat-summary{
    background:#ecfdf5!important;
    border-color:#a7f3d0!important;
}
.purchase-vat-summary strong{color:#047857!important}
.purchase-vat-badge{
    background:#d1fae5;
    color:#065f46;
}
.purchase-vat-detail{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:9px;
    margin-top:9px;
}
.purchase-vat-detail>div{
    padding:11px;
    border:1px solid #a7f3d0;
    border-radius:10px;
    background:#ecfdf5;
}
.purchase-vat-detail span{
    display:block;
    font-size:9px;
    text-transform:uppercase;
    font-weight:800;
    color:#047857;
}
.purchase-vat-detail strong{
    display:block;
    margin-top:3px;
    color:#065f46;
}
.iva-balance-grid{
    display:grid;
    grid-template-columns:minmax(170px,1fr) 36px minmax(170px,1fr) 36px minmax(220px,1.2fr);
    gap:10px;
    align-items:stretch;
}
.iva-balance-widget,
.iva-balance-result{
    padding:16px;
    border-radius:13px;
    border:1px solid var(--border);
}
.iva-balance-widget span,
.iva-balance-result span{
    display:block;
    font-size:10px;
    font-weight:850;
    text-transform:uppercase;
}
.iva-balance-widget strong,
.iva-balance-result strong{
    display:block;
    margin-top:5px;
    font-size:24px;
}
.iva-balance-widget small,
.iva-balance-result small{
    display:block;
    margin-top:4px;
    font-size:10px;
}
.iva-balance-widget.sales{
    background:#fff7ed;
    border-color:#fed7aa;
    color:#9a3412;
}
.iva-balance-widget.purchases{
    background:#ecfdf5;
    border-color:#a7f3d0;
    color:#065f46;
}
.iva-balance-symbol{
    display:grid;
    place-items:center;
    font-size:25px;
    font-weight:900;
    color:var(--muted);
}
.iva-balance-result.payable{
    background:#fef2f2;
    border-color:#fecaca;
    color:#991b1b;
}
.iva-balance-result.credit{
    background:#eff6ff;
    border-color:#bfdbfe;
    color:#1e40af;
}
.iva-balance-result.balanced{
    background:#f8fafc;
    color:#475569;
}
.iva-balance-formula{
    display:flex;
    flex-wrap:wrap;
    gap:7px 12px;
    align-items:center;
    margin-top:13px;
    padding:11px 13px;
    border:1px solid var(--border);
    border-radius:11px;
    background:var(--surface-2);
    font-size:11px;
}
.iva-balance-formula span{color:var(--muted)}
.positive-tax{color:#991b1b}
.negative-tax{color:#1e40af}
@media(max-width:950px){
    .iva-balance-grid{
        grid-template-columns:1fr;
    }
    .iva-balance-symbol{
        height:22px;
    }
}
@media(max-width:620px){
    .purchase-summary-expanded{
        width:100%;
        flex-direction:column;
    }
    .purchase-summary-expanded>div{min-width:0}
    .purchase-vat-detail{grid-template-columns:1fr}
}


/* ===== Versión 2.9.8: paginación global ===== */
.global-pagination{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    flex-wrap:wrap;
    margin-top:12px;
    padding:10px 12px;
    border:1px solid var(--border);
    border-radius:12px;
    background:var(--surface-2);
}
.global-pagination-info{
    display:flex;
    align-items:center;
    gap:14px;
    flex-wrap:wrap;
    font-size:11px;
    color:var(--muted);
}
.global-pagination-info strong{color:var(--text)}
.global-pagination-info label{
    display:flex;
    align-items:center;
    gap:6px;
    margin:0;
    font-size:11px;
    text-transform:none;
}
.global-pagination-info select{
    width:auto;
    min-width:66px;
    height:34px;
    margin:0;
    padding:4px 24px 4px 8px;
    border-radius:8px;
}
.global-pagination-buttons{
    display:flex;
    align-items:center;
    gap:4px;
}
.global-pagination-buttons button{
    min-width:32px;
    height:32px;
    padding:0 8px;
    border:1px solid var(--border);
    border-radius:8px;
    background:#fff;
    color:var(--text);
    cursor:pointer;
    font-size:11px;
    font-weight:750;
}
.global-pagination-buttons button:hover:not(:disabled){
    border-color:var(--accent);
    color:var(--accent);
}
.global-pagination-buttons button.active{
    border-color:var(--accent);
    background:var(--accent);
    color:#fff;
}
.global-pagination-buttons button:disabled{
    opacity:.4;
    cursor:not-allowed;
}
.global-pagination-buttons span{
    padding:0 2px;
    color:var(--muted);
}
@media(max-width:620px){
    .global-pagination{
        align-items:stretch;
        flex-direction:column;
    }
    .global-pagination-info{
        justify-content:space-between;
    }
    .global-pagination-buttons{
        justify-content:center;
        overflow-x:auto;
        padding-bottom:2px;
    }
}


/* ===== Versión 2.9.9: corrección de paginación ===== */
[hidden]{display:none!important}
.global-pagination + .global-pagination{display:none!important}


/* ===== Versión 2.10.0: cantidad por pulsación prolongada móvil ===== */
.product-card-pos{
    -webkit-touch-callout:none;
    user-select:none;
}
.product-card-pos.long-press-pending{
    transform:scale(.97);
    opacity:.88;
}
.product-card-pos.long-press-triggered{
    transform:scale(.95);
}
.mobile-quantity-modal .pos-modal-box{
    width:min(100%,430px);
}
.mobile-quantity-product-summary{
    display:flex;
    align-items:center;
    gap:12px;
    padding:12px;
    border:1px solid var(--border);
    border-radius:12px;
    background:var(--surface-2);
}
.mobile-quantity-product-summary .product-icon{
    width:46px;
    height:46px;
    flex:0 0 46px;
    display:grid;
    place-items:center;
    border-radius:12px;
    background:#eaf7f3;
    color:var(--accent);
}
.mobile-quantity-product-summary strong,
.mobile-quantity-product-summary small{
    display:block;
}
.mobile-quantity-product-summary small{
    margin-top:3px;
    color:var(--muted);
}
.mobile-quantity-control{
    display:grid;
    grid-template-columns:58px minmax(0,1fr) 58px;
    gap:8px;
    align-items:center;
    margin-top:15px;
}
.mobile-quantity-control button{
    height:54px;
    border:0;
    border-radius:12px;
    background:var(--surface-2);
    color:var(--text);
    font-size:18px;
    cursor:pointer;
}
.mobile-quantity-control input{
    height:54px;
    margin:0;
    text-align:center;
    font-size:24px;
    font-weight:850;
}
.mobile-quantity-subtotal{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-top:12px;
    padding:13px 15px;
    border-radius:12px;
    background:var(--primary);
    color:#fff;
}
.mobile-quantity-subtotal strong{
    font-size:22px;
}
@media(min-width:821px){
    .product-card-pos.long-press-pending,
    .product-card-pos.long-press-triggered{
        transform:none;
        opacity:1;
    }
}


/* ===== Versión 2.10.1: indicador de guardado rápido ===== */
.server-status{
    transition:opacity .2s ease;
}


/* ===== Versión 2.10.3: barra fija en Cuenta Cliente ===== */
#detalleCuentaCliente.active{
    padding-bottom:118px;
}
#detalleCuentaCliente .card{
    overflow:visible;
}
.account-fixed-actions{
    position:fixed;
    left:var(--sidebar-width, 0px);
    right:0;
    bottom:0;
    z-index:950;
    min-height:82px;
    display:grid;
    grid-template-columns:auto minmax(150px,1fr) minmax(130px,180px) minmax(130px,180px);
    align-items:center;
    gap:10px;
    padding:10px max(14px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));
    border-top:1px solid var(--border);
    background:rgba(255,255,255,.97);
    box-shadow:0 -10px 30px rgba(15,23,42,.14);
    backdrop-filter:blur(12px);
}
.account-fixed-actions.no-debt{
    grid-template-columns:auto minmax(180px,1fr);
}
.account-fixed-back,
.account-fixed-pay{
    min-height:56px;
    border:0;
    border-radius:13px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:10px 14px;
    cursor:pointer;
    font-weight:800;
}
.account-fixed-back{
    background:var(--surface-2);
    color:var(--text);
}
.account-fixed-debt{
    min-width:0;
    display:flex;
    flex-direction:column;
    justify-content:center;
}
.account-fixed-debt span{
    font-size:11px;
    color:var(--muted);
}
.account-fixed-debt strong{
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:20px;
    color:var(--text);
}
.account-fixed-pay.abono{
    background:#f4b400;
    color:#111827;
}
.account-fixed-pay.completo{
    background:var(--accent);
    color:#fff;
}
.account-fixed-pay.active{
    outline:3px solid rgba(15,118,110,.18);
    transform:translateY(-1px);
}
.account-payment-sheet{
    margin:0;
    padding:0;
    border:0;
    background:transparent;
}
.account-payment-bottom-sheet{
    position:fixed;
    left:calc(var(--sidebar-width, 0px) + 50%);
    bottom:94px;
    z-index:980;
    width:min(640px,calc(100vw - var(--sidebar-width, 0px) - 28px));
    max-height:min(72vh,620px);
    overflow-y:auto;
    transform:translateX(-50%);
    margin:0;
    padding:18px;
    border:1px solid var(--border);
    border-radius:18px;
    background:#fff;
    box-shadow:0 22px 70px rgba(15,23,42,.28);
}
.account-payment-bottom-sheet[hidden]{
    display:none!important;
}
.account-sheet-close{
    margin-left:auto;
    width:38px;
    height:38px;
    flex:0 0 38px;
    display:grid;
    place-items:center;
    border:0;
    border-radius:10px;
    background:var(--surface-2);
    color:var(--text);
    cursor:pointer;
}
#detalleCuentaCliente.account-sheet-open::before{
    content:"";
    position:fixed;
    inset:0;
    z-index:970;
    background:rgba(15,23,42,.35);
    backdrop-filter:blur(2px);
}
#detalleCuentaCliente.account-sheet-open .account-fixed-actions{
    z-index:975;
}
@media(max-width:900px){
    .account-fixed-actions{
        left:0;
        grid-template-columns:52px minmax(88px,1fr) minmax(92px,1fr) minmax(100px,1fr);
        gap:7px;
        min-height:78px;
        padding-top:8px;
    }
    .account-fixed-back{
        padding:8px;
    }
    .account-fixed-back span{
        display:none;
    }
    .account-fixed-debt strong{
        font-size:16px;
    }
    .account-fixed-pay{
        min-height:52px;
        padding:8px 7px;
        flex-direction:column;
        gap:3px;
        font-size:11px;
    }
    .account-fixed-pay i{
        font-size:17px;
    }
    .account-payment-bottom-sheet{
        left:12px;
        right:12px;
        bottom:88px;
        width:auto;
        max-height:70vh;
        transform:none;
        border-radius:18px;
    }
}
@media(max-width:430px){
    #detalleCuentaCliente.active{
        padding-bottom:108px;
    }
    .account-fixed-actions{
        grid-template-columns:46px minmax(72px,.9fr) minmax(82px,1fr) minmax(94px,1.1fr);
        padding-left:8px;
        padding-right:8px;
    }
    .account-fixed-debt span{
        font-size:9px;
    }
    .account-fixed-debt strong{
        font-size:14px;
    }
}


/* ===== Versión 2.10.4: altas mediante modales ===== */
.module-list-heading{align-items:center}
.module-heading-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.compact-create-modal .pos-modal-box{width:min(560px,calc(100vw - 24px))}
.purchase-create-modal .pos-modal-box{width:min(860px,calc(100vw - 24px));max-height:92vh;overflow-y:auto}
.modal-purchase-grid{margin-top:4px}
@media(max-width:700px){
    .module-list-heading{align-items:stretch}
    .module-heading-actions{width:100%;display:grid;grid-template-columns:1fr 1fr}
    .module-heading-actions .btn{min-height:46px}
    #clientes .module-heading-actions{grid-template-columns:auto 1fr}
    .purchase-create-modal .pos-modal-box,.compact-create-modal .pos-modal-box{width:calc(100vw - 14px);max-height:94vh;border-radius:16px}
    .modal-purchase-grid{grid-template-columns:1fr}
    .modal-purchase-grid .wide{grid-column:auto}
}


/* ===== Versión 2.10.5: balance real en reportes ===== */
.business-balance-grid{
    display:grid;
    grid-template-columns:repeat(5,minmax(160px,1fr));
    gap:12px;
}
.business-balance-widget{
    min-height:145px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:7px;
    padding:18px;
    border:1px solid var(--border);
    border-radius:17px;
    background:var(--surface);
}
.business-balance-widget span{
    color:var(--muted);
    font-size:13px;
    font-weight:700;
}
.business-balance-widget strong{
    font-size:clamp(21px,2vw,30px);
    line-height:1.05;
}
.business-balance-widget small{
    color:var(--muted);
    line-height:1.35;
}
.business-balance-widget.sold{border-top:4px solid #2563eb}
.business-balance-widget.collected{border-top:4px solid #16a34a}
.business-balance-widget.pending{border-top:4px solid #f59e0b}
.business-balance-widget.expenses{border-top:4px solid #dc2626}
.business-balance-widget.real{
    border-top:4px solid #0f766e;
    background:linear-gradient(145deg,rgba(15,118,110,.08),rgba(255,255,255,.98));
}
.business-balance-widget.real.negative{
    border-top-color:#dc2626;
    background:linear-gradient(145deg,rgba(220,38,38,.08),rgba(255,255,255,.98));
}
.business-balance-formula{
    margin-top:14px;
    display:grid;
    grid-template-columns:repeat(5,minmax(130px,1fr));
    gap:8px;
}
.business-balance-formula>div{
    padding:12px 14px;
    border-radius:13px;
    background:var(--surface-2);
    display:flex;
    flex-direction:column;
    gap:4px;
}
.business-balance-formula span{
    color:var(--muted);
    font-size:11px;
}
.business-balance-formula strong{
    font-size:16px;
}
.business-balance-formula .deduction strong{
    color:#b91c1c;
}
@media(max-width:1180px){
    .business-balance-grid{grid-template-columns:repeat(3,minmax(170px,1fr))}
    .business-balance-formula{grid-template-columns:repeat(3,minmax(150px,1fr))}
}
@media(max-width:700px){
    .business-balance-grid{grid-template-columns:1fr 1fr}
    .business-balance-widget.real{grid-column:1/-1}
    .business-balance-formula{grid-template-columns:1fr 1fr}
}
@media(max-width:430px){
    .business-balance-grid,.business-balance-formula{grid-template-columns:1fr}
    .business-balance-widget.real{grid-column:auto}
}


/* ===== Versión 2.10.6: submenú e historial de abonos ===== */
.collections-submenu{
    display:grid;
    grid-template-columns:repeat(2,minmax(180px,1fr));
    gap:10px;
    margin:18px 0;
    padding:6px;
    border-radius:16px;
    background:var(--surface-2);
}
.collections-tab{
    min-height:58px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    padding:10px 14px;
    border:0;
    border-radius:12px;
    background:transparent;
    color:var(--muted);
    cursor:pointer;
    font-weight:800;
}
.collections-tab b{
    min-width:25px;
    padding:3px 7px;
    border-radius:999px;
    background:rgba(15,23,42,.09);
    font-size:11px;
}
.collections-tab.active{
    background:#fff;
    color:var(--text);
    box-shadow:0 5px 16px rgba(15,23,42,.10);
}
.collections-tab.active b{
    background:var(--accent);
    color:#fff;
}
.collections-panel{display:none}
.collections-panel.active{display:block}
.collections-panel-heading{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:14px;
    margin-bottom:14px;
}
.collections-panel-heading h3{margin:0 0 3px}
.collections-payment-search{
    width:min(420px,100%);
    margin:0;
}
.payment-history-summary{
    display:grid;
    grid-template-columns:repeat(3,minmax(130px,1fr));
    gap:10px;
    margin-bottom:14px;
}
.payment-history-summary>div{
    display:flex;
    flex-direction:column;
    gap:4px;
    padding:13px 15px;
    border:1px solid var(--border);
    border-radius:14px;
    background:var(--surface-2);
}
.payment-history-summary span{font-size:11px;color:var(--muted)}
.payment-history-summary strong{font-size:20px}
.payment-history-list{
    display:flex;
    flex-direction:column;
    gap:10px;
}
.payment-history-card{
    overflow:hidden;
    border:1px solid var(--border);
    border-radius:16px;
    background:#fff;
    transition:.2s ease;
}
.payment-history-card.open{
    border-color:rgba(15,118,110,.35);
    box-shadow:0 9px 25px rgba(15,23,42,.08);
}
.payment-history-header{
    width:100%;
    display:grid;
    grid-template-columns:46px minmax(0,1fr) auto;
    align-items:center;
    gap:12px;
    padding:15px;
    border:0;
    background:transparent;
    text-align:left;
    cursor:pointer;
}
.payment-history-icon{
    width:44px;
    height:44px;
    display:grid;
    place-items:center;
    border-radius:13px;
    background:rgba(15,118,110,.1);
    color:var(--accent);
    font-size:18px;
}
.payment-history-main{
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:3px;
}
.payment-history-main strong{font-size:16px}
.payment-history-main span,.payment-history-main small{
    overflow:hidden;
    color:var(--muted);
    text-overflow:ellipsis;
    white-space:nowrap;
}
.payment-history-amount{
    display:flex;
    align-items:center;
    gap:12px;
}
.payment-history-amount strong{
    font-size:19px;
    color:var(--accent);
}
.payment-history-card.open .payment-history-amount i{
    transform:rotate(180deg);
}
.payment-history-detail{
    padding:0 15px 16px;
    border-top:1px solid var(--border);
}
.payment-history-detail[hidden]{display:none!important}
.payment-history-meta{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    padding:13px 0;
}
.payment-history-meta span{
    padding:6px 9px;
    border-radius:999px;
    background:var(--surface-2);
    color:var(--muted);
    font-size:11px;
}
.payment-history-detail h4{margin:4px 0 10px}
.payment-application-card{
    margin-top:9px;
    padding:13px;
    border:1px solid var(--border);
    border-radius:13px;
    background:var(--surface-2);
}
.payment-application-head{
    display:flex;
    justify-content:space-between;
    gap:12px;
    padding-bottom:9px;
    border-bottom:1px solid var(--border);
}
.payment-application-head>div{
    display:flex;
    flex-direction:column;
    gap:2px;
}
.payment-application-head>div:last-child{text-align:right}
.payment-application-head span,.payment-application-head small{
    color:var(--muted);
    font-size:11px;
}
.payment-product-list{padding:8px 0}
.payment-product-row{
    display:flex;
    justify-content:space-between;
    gap:12px;
    padding:5px 0;
    font-size:12px;
}
.payment-application-totals{
    display:flex;
    flex-wrap:wrap;
    justify-content:space-between;
    gap:8px;
    padding-top:8px;
    border-top:1px dashed var(--border);
    color:var(--muted);
    font-size:11px;
}
@media(max-width:700px){
    .collections-panel-heading{align-items:stretch;flex-direction:column}
    .collections-payment-search{width:100%}
    .payment-history-header{grid-template-columns:40px minmax(0,1fr)}
    .payment-history-amount{
        grid-column:2;
        justify-content:space-between;
    }
    .payment-history-summary{grid-template-columns:1fr 1fr}
    .payment-history-summary>div:last-child{grid-column:1/-1}
}
@media(max-width:430px){
    .collections-submenu{grid-template-columns:1fr}
    .payment-history-summary{grid-template-columns:1fr}
    .payment-history-summary>div:last-child{grid-column:auto}
}


/* ===== Versión 2.10.7: abonos agrupados por operación ===== */
.payment-operation-summary{
    display:grid;
    grid-template-columns:repeat(4,minmax(110px,1fr));
    gap:8px;
    margin:4px 0 16px;
}
.payment-operation-summary>div{
    display:flex;
    flex-direction:column;
    gap:3px;
    padding:11px 12px;
    border:1px solid var(--border);
    border-radius:12px;
    background:#fff;
}
.payment-operation-summary span{
    color:var(--muted);
    font-size:10px;
}
.payment-operation-summary strong{
    font-size:16px;
}
.payment-status{
    width:max-content;
    margin-top:4px;
    padding:3px 7px;
    border-radius:999px;
    font-size:9px!important;
    font-weight:800;
}
.payment-status.complete{
    background:rgba(22,163,74,.12);
    color:#15803d!important;
}
.payment-status.partial{
    background:rgba(245,158,11,.14);
    color:#b45309!important;
}
.payment-history-main small{
    white-space:normal;
    line-height:1.35;
}
.payment-history-summary small{
    color:var(--muted);
    font-size:9px;
}
@media(max-width:700px){
    .payment-operation-summary{
        grid-template-columns:1fr 1fr;
    }
}
@media(max-width:430px){
    .payment-operation-summary{
        grid-template-columns:1fr;
    }
}


/* ===== Versión 2.10.8: creación de productos mediante modal ===== */
.products-module-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    flex-wrap:wrap;
}
.new-product-modal .pos-modal-box{
    width:min(760px,calc(100vw - 24px));
    max-height:92vh;
    overflow-y:auto;
}
.new-product-modal-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}
.new-product-wide{
    grid-column:1/-1;
}
.new-product-weight{
    min-height:74px;
    margin:0;
}
.new-product-profit{
    min-height:74px;
    margin:0;
}
@media(max-width:700px){
    .products-module-heading{
        align-items:stretch;
    }
    .products-module-actions{
        width:100%;
        display:grid;
        grid-template-columns:auto 1fr;
    }
    .products-module-actions .btn{
        min-height:46px;
    }
    .new-product-modal .pos-modal-box{
        width:calc(100vw - 14px);
        max-height:94vh;
        border-radius:16px;
    }
    .new-product-modal-grid{
        grid-template-columns:1fr;
    }
    .new-product-wide{
        grid-column:auto;
    }
}
@media(max-width:430px){
    .products-module-actions{
        grid-template-columns:1fr;
    }
    .products-count-pill{
        justify-content:center;
    }
}


/* ===== Versión 2.10.9: cuadratura clara de abonos ===== */
.payment-applied-amount{
    padding:8px 11px;
    border-radius:11px;
    background:rgba(22,163,74,.10);
}
.payment-applied-amount strong{
    color:#15803d;
    font-size:18px;
}
.payment-balance-note{
    display:flex;
    align-items:center;
    gap:9px;
    margin:0 0 14px;
    padding:11px 13px;
    border-radius:12px;
    background:rgba(37,99,235,.08);
    color:#1d4ed8;
    font-size:12px;
}
.payment-balance-ok strong{color:#15803d}
.payment-balance-error strong{color:#b91c1c}
.payment-sale-reference{
    margin:10px 0;
    border:1px solid var(--border);
    border-radius:11px;
    background:#fff;
}
.payment-sale-reference summary{
    padding:10px 12px;
    cursor:pointer;
    color:var(--muted);
    font-size:11px;
    font-weight:800;
}
.payment-product-warning{
    margin:0 10px 5px;
    padding:8px 10px;
    border-radius:9px;
    background:rgba(245,158,11,.10);
    color:#92400e;
    font-size:10px;
    line-height:1.4;
}
.payment-sale-reference .payment-product-list{
    padding:5px 11px 10px;
}
.payment-application-totals{
    align-items:center;
}
.payment-application-totals span:first-child{
    padding:5px 8px;
    border-radius:8px;
    background:rgba(22,163,74,.09);
    color:#166534;
}


/* ===== Versión 2.10.10: pendientes arriba y detalle reciente primero ===== */
.pending-account-section{
    border:1px solid rgba(245,158,11,.35);
    background:linear-gradient(180deg, rgba(245,158,11,.07), rgba(255,255,255,.98));
}
.pending-sales-list{
    display:grid;
    gap:9px;
}
.pending-sale-card{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:12px 14px;
    border:1px solid rgba(245,158,11,.30);
    border-radius:13px;
    background:#fff;
}
.pending-sale-card > div:first-child{
    display:flex;
    flex-direction:column;
    gap:3px;
}
.pending-sale-card > div:first-child strong{
    color:#92400e;
}
.pending-sale-card > div:first-child span,
.pending-sale-card > div:last-child small{
    color:var(--muted);
    font-size:11px;
}
.pending-sale-card > div:last-child{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:2px;
    text-align:right;
}
.pending-sale-card > div:last-child strong{
    color:#b45309;
    font-size:18px;
}
.account-no-pending{
    display:flex;
    align-items:center;
    gap:9px;
    padding:14px;
    border-radius:12px;
    background:rgba(22,163,74,.09);
    color:#166534;
    font-weight:700;
}
@media (max-width:600px){
    .pending-sale-card{
        align-items:flex-start;
    }
    .pending-sale-card > div:last-child strong{
        font-size:16px;
    }
}


/* ===== Versión 2.10.11: historial inalterable de saldos ===== */
.account-payment-history-item{
    margin-top:8px;
    padding:10px 11px;
    border:1px solid var(--border);
    border-radius:11px;
    background:#fff;
}
.account-payment-history-head,
.account-payment-history-flow{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:10px;
}
.account-payment-history-head span{
    color:var(--muted);
    font-size:10px;
}
.account-payment-history-flow{
    margin:7px 0;
    padding:7px 8px;
    border-radius:9px;
    background:rgba(15,23,42,.035);
    font-size:11px;
}
.historical-pending{
    color:#b45309;
    font-weight:700;
}
.historical-paid{
    color:#15803d;
    font-weight:700;
}
.historical-balance-totals span:first-child{
    background:rgba(37,99,235,.08);
    color:#1d4ed8;
}
.historical-balance-totals .historical-pending{
    background:rgba(245,158,11,.10);
    padding:5px 8px;
    border-radius:8px;
}
.historical-balance-totals .historical-paid{
    background:rgba(22,163,74,.10);
    padding:5px 8px;
    border-radius:8px;
}
@media(max-width:600px){
    .account-payment-history-head,
    .account-payment-history-flow{
        align-items:flex-start;
        flex-direction:column;
        gap:4px;
    }
}


/* ===== Versión 2.10.12: menú lateral ocultable ===== */
.sidebar,
.main-shell{
    transition:transform .24s ease, margin-left .24s ease;
}

.menu-principal-btn{
    display:grid;
    flex:0 0 42px;
}

.app.sidebar-collapsed .sidebar{
    transform:translateX(-105%);
}

.app.sidebar-collapsed .main-shell{
    margin-left:0;
}

.app.sidebar-collapsed .container{
    max-width:none;
}

.app.sidebar-collapsed #venta .pos-layout{
    grid-template-columns:minmax(0,7.4fr) minmax(350px,2.6fr);
}

@media(min-width:981px){
    .menu-principal-btn{
        display:grid;
    }

    .app:not(.sidebar-collapsed) .menu-principal-btn{
        background:var(--surface-2);
    }
}

/* La barra superior acompaña el desplazamiento y no consume espacio fijo */
.topbar{
    position:static;
}

@media(min-width:981px){
    #venta .pos-cart-panel{
        top:18px;
        height:calc(100vh - 36px);
        max-height:calc(100vh - 36px);
    }
}

@media(max-width:980px){
    .app.sidebar-collapsed .sidebar{
        transform:translateX(-100%);
    }

    .app.sidebar-collapsed .main-shell{
        margin-left:0;
    }

    .menu-principal-btn{
        display:grid;
    }
}

/* Desglose visible y persistente de ventas con pago mixto */
.sales-mixed-payment{
    margin:12px 0;
    padding:11px 12px;
    border:1px solid var(--border);
    border-radius:12px;
    background:var(--surface-2);
}

.sales-mixed-payment-items{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:7px;
}

.sales-mixed-payment-items span{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:6px 9px;
    border-radius:999px;
    background:#e7f5f1;
    color:var(--primary);
    font-size:12px;
}

/* Pantalla central para operaciones confirmadas por MySQL */
.system-loading-overlay{
    position:fixed;
    inset:0;
    z-index:10000;
    display:grid;
    place-items:center;
    padding:20px;
    background:rgba(8,31,30,.64);
    backdrop-filter:blur(4px);
}

.system-loading-overlay[hidden]{
    display:none!important;
}

.system-loading-card{
    width:min(280px,calc(100vw - 40px));
    padding:28px 24px;
    border-radius:22px;
    background:#fff;
    box-shadow:0 28px 80px rgba(0,0,0,.3);
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
}

.system-loading-brand{
    position:relative;
    width:76px;
    height:76px;
    margin-bottom:18px;
    border-radius:20px;
    overflow:hidden;
    background:var(--primary);
    color:#fff;
    display:grid;
    place-items:center;
}

.system-loading-brand img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:contain;
    background:#fff;
}

.system-loading-fallback{
    font-size:25px;
    font-weight:900;
}

.system-loading-spinner{
    width:34px;
    height:34px;
    margin-bottom:14px;
    border:4px solid #dceae7;
    border-top-color:var(--accent);
    border-radius:50%;
    animation:systemLoadingSpin .75s linear infinite;
}

.system-loading-card strong{
    color:var(--primary);
    font-size:16px;
}

.system-loading-card small{
    margin-top:5px;
    color:var(--muted);
}

@keyframes systemLoadingSpin{
    to{transform:rotate(360deg)}
}

@media(prefers-reduced-motion:reduce){
    .system-loading-spinner{animation-duration:1.5s}
}

/* POS más ágil: mayor espacio para revisar el carrito */
@media(min-width:1201px){
    #venta .pos-layout{
        grid-template-columns:minmax(0,6.2fr) minmax(430px,3.8fr);
    }

    .app.sidebar-collapsed #venta .pos-layout{
        grid-template-columns:minmax(0,6.5fr) minmax(460px,3.5fr);
    }
}

@media(min-width:981px) and (max-width:1200px){
    #venta .pos-layout,
    .app.sidebar-collapsed #venta .pos-layout{
        grid-template-columns:minmax(0,1fr) 410px;
    }
}

@media(min-width:981px){
    #venta .pos-cart-panel{
        min-width:0;
        height:calc(100vh - 120px);
        min-height:560px;
    }

    #venta .cart-list{
        flex:1 1 180px;
        min-height:120px;
        overflow-y:auto;
    }

    #venta .venta-observaciones,
    #venta .cart-total,
    #venta .checkout-btn{
        flex-shrink:0;
    }
}
