
:root{
  --color-primary:#d96836;
  --color-primary-strong:#dd4d12;
  --color-bg:#f7eadf;
  --color-bg-soft:#fbf1e7;
  --color-panel:#fffaf3;
  --color-panel-2:#fff5eb;
  --color-text:#1f1f1f;
  --color-muted:#775f53;
  --color-brown:#8b573d;
  --color-brown-dark:#5c3327;
  --color-line:#ead2bd;
  --color-accent:#f0a45f;
  --color-success:#2f9b62;
  --color-danger:#c5332a;
  --font-scale:1;
  --button-scale:1;
  --radius:22px;
  --shadow:0 14px 35px rgba(91,45,35,.14);
}
:root[data-theme="dark"]{
  --color-primary:#e56c3d;
  --color-primary-strong:#ff7a45;
  --color-bg:#211713;
  --color-bg-soft:#2b1e19;
  --color-panel:#33231d;
  --color-panel-2:#3b2922;
  --color-text:#fff4ec;
  --color-muted:#d7b8a7;
  --color-brown:#f0a46f;
  --color-brown-dark:#ffccaa;
  --color-line:#5b3c31;
  --color-accent:#f5b46e;
  --shadow:0 14px 35px rgba(0,0,0,.32);
}
:root[data-theme="classic"]{
  --color-primary:#b94132;
  --color-primary-strong:#d8644d;
  --color-bg:#f7ead7;
  --color-bg-soft:#f3dcc8;
  --color-panel:#fff7ea;
  --color-panel-2:#fff4e6;
  --color-text:#2e201a;
  --color-muted:#83685a;
  --color-brown:#7a3f31;
  --color-brown-dark:#5b2d23;
  --color-line:#ead2bd;
  --color-accent:#e99a55;
}
*{box-sizing:border-box}
html{font-size:calc(18px * var(--font-scale));}
body{margin:0;background:linear-gradient(135deg,var(--color-bg),var(--color-bg-soft));font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--color-text);overflow:hidden}
button,input,select{font:inherit} button{cursor:pointer;border:0}.hidden{display:none!important}
.nf-shell{height:100vh;display:grid;grid-template-columns:285px 1fr;background:var(--color-bg)}
.nf-side{background:linear-gradient(180deg,var(--color-brown-dark),#3f1c16);color:#fff;padding:22px;display:flex;flex-direction:column;gap:18px}
.brand{display:flex;gap:13px;align-items:center}.brand-badge{width:58px;height:58px;border-radius:18px;background:linear-gradient(135deg,var(--color-primary),var(--color-accent));display:grid;place-items:center;font-size:30px;font-weight:900;box-shadow:0 12px 30px rgba(0,0,0,.2)}
.brand h1{font-size:1.5rem;line-height:1;margin:0}.brand p{margin:5px 0 0;color:#ffd8bd;font-size:.85rem}.nav{display:grid;gap:9px}.nav button{background:rgba(255,255,255,.09);color:#fff;text-align:left;padding:calc(16px * var(--button-scale));border-radius:17px;font-weight:800;display:flex;align-items:center;gap:11px}.nav button.active,.nav button:hover{background:linear-gradient(135deg,var(--color-primary),var(--color-accent));box-shadow:0 10px 22px rgba(0,0,0,.18)}
.side-foot{margin-top:auto;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);border-radius:18px;padding:14px;font-size:.85rem;color:#ffe5d0}
.main{height:100vh;overflow:hidden;padding:20px;display:flex;flex-direction:column;gap:14px}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px}.topbar h2{font-size:1.9rem;margin:0;color:var(--color-brown-dark)}.status-pills{display:flex;gap:8px;flex-wrap:wrap}.pill{background:var(--color-panel);border:1px solid var(--color-line);padding:10px 14px;border-radius:999px;font-weight:800;color:var(--color-brown-dark);box-shadow:0 4px 14px rgba(91,45,35,.08)}
.grid-pos{min-height:0;flex:1;display:grid;grid-template-columns:minmax(500px,1fr) 420px;gap:16px}.card{background:var(--color-panel);border:1px solid var(--color-line);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px;min-height:0}.card-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.card-title h3{margin:0;font-size:1.35rem;color:var(--color-brown-dark)}
.searchbox{display:flex;gap:10px}.searchbox input{width:100%;border:2px solid var(--color-line);background:#fffdf8;color:#151515;border-radius:18px;padding:18px 20px;font-size:1.35rem;font-weight:850;outline:none}.searchbox input:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px rgba(217,104,54,.16)}.btn{padding:calc(16px * var(--button-scale)) calc(18px * var(--button-scale));border-radius:17px;font-weight:900;background:#f1d1b7;color:#4d281d}.btn.primary{background:linear-gradient(135deg,var(--color-primary),var(--color-accent));color:#fff}.btn.green{background:var(--color-success);color:#fff}.btn.ghost{background:var(--color-panel-2);border:1px solid var(--color-line);color:var(--color-brown-dark)}
.product-list{margin-top:14px;display:grid;gap:10px;overflow:auto;max-height:calc(100vh - 260px);padding-right:5px}.product-row{display:grid;grid-template-columns:58px 110px 1fr 105px 105px 90px 58px;gap:10px;align-items:center;background:var(--color-panel-2);border:1px solid var(--color-line);border-radius:18px;padding:10px 12px}.product-row:hover{border-color:var(--color-primary);transform:translateY(-1px)}.code{font-weight:950;font-size:1.1rem;color:var(--color-primary-strong)}.pname{font-weight:900;font-size:1.1rem}.muted{font-size:.8rem;color:var(--color-muted)}.metric{background:rgba(240,164,95,.18);border-radius:13px;padding:8px;text-align:center;font-size:.78rem}.metric b{display:block;font-size:1.12rem;color:var(--color-brown-dark)}.stock-ok b{color:var(--color-success)}.stock-low b{color:var(--color-danger)}.plus{height:48px;border-radius:14px;background:var(--color-primary);color:#fff;font-size:1.55rem;font-weight:900}
.cart{display:flex;flex-direction:column;height:100%}.cart-items{flex:1;overflow:auto;display:grid;gap:9px;padding-right:4px}.cart-line{background:var(--color-panel-2);border:1px solid var(--color-line);border-radius:17px;padding:12px;display:grid;grid-template-columns:1fr auto;gap:6px}.cart-line b{font-size:1.05rem}.qty{color:var(--color-primary-strong);font-weight:900}.totals{border-top:2px dashed var(--color-line);margin-top:12px;padding-top:12px}.total-row{display:flex;justify-content:space-between;font-weight:800;padding:5px 0}.grand{font-size:2.2rem;color:var(--color-primary-strong);font-weight:1000}.actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.actions .wide{grid-column:1/-1}.view{display:none;min-height:0;flex:1}.view.active{display:flex;flex-direction:column}.module-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:14px;overflow:auto}.module-card{background:var(--color-panel);border:1px solid var(--color-line);border-radius:22px;box-shadow:var(--shadow);padding:20px}.module-card h3{font-size:1.45rem;margin:0 0 10px;color:var(--color-brown-dark)}.big-number{font-size:2.45rem;font-weight:1000;color:var(--color-primary-strong)}
.login-wrap{height:100vh;display:grid;place-items:center;background:radial-gradient(circle at 20% 20%,#ffd7b2,transparent 28%),linear-gradient(135deg,var(--color-bg),var(--color-bg-soft))}.login-card{width:min(460px,92vw);background:var(--color-panel);border:1px solid var(--color-line);border-radius:30px;box-shadow:var(--shadow);padding:30px}.login-card h1{font-size:2rem;color:var(--color-brown-dark);margin:0}.login-card p{color:var(--color-muted)}.field{display:grid;gap:7px;margin-top:14px}.field label{font-weight:900;color:var(--color-brown-dark)}.field input,.field select{padding:17px;border-radius:16px;border:2px solid var(--color-line);background:#fffdf8;color:#151515;font-size:1.2rem}.alert{padding:13px 15px;border-radius:16px;background:#ffe2d9;color:#9f2f22;font-weight:850;margin-top:14px}.okmsg{background:#dff4e7;color:#236b43}.login-card .btn{width:100%;margin-top:18px;font-size:1.2rem}
.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:14px;overflow:auto}.setting-row{display:grid;gap:8px;margin:12px 0}.setting-row label{font-weight:900;color:var(--color-brown-dark)}.color-row{display:grid;grid-template-columns:1fr 80px;gap:10px;align-items:center}.color-row input[type="color"]{height:50px;border:0;background:transparent}.range-value{font-weight:900;color:var(--color-primary-strong)}
@media(max-width:1050px){body{overflow:auto}.nf-shell{grid-template-columns:1fr;height:auto}.nf-side{position:sticky;top:0;z-index:3}.nav{grid-template-columns:repeat(4,1fr)}.nav button{justify-content:center;font-size:.85rem}.grid-pos{grid-template-columns:1fr}.product-row{grid-template-columns:54px 95px 1fr 90px 90px 82px 55px}.main{height:auto;min-height:100vh;overflow:visible}.product-list{max-height:none}.cart{min-height:520px}.settings-grid{grid-template-columns:1fr}}
@media(max-width:680px){.main{padding:12px}.topbar{align-items:flex-start;flex-direction:column}.topbar h2{font-size:1.55rem}.nav{grid-template-columns:repeat(2,1fr)}.product-row{grid-template-columns:52px 1fr 70px;gap:8px}.code,.metric{display:none}.plus{grid-column:3;grid-row:1/3}.product-thumb{width:46px;height:46px}.product-thumb-wrap{width:46px;height:46px}.grid-pos{gap:10px}.actions{grid-template-columns:1fr}.module-grid{grid-template-columns:1fr}.searchbox{flex-direction:column}.searchbox input{font-size:1.15rem}}

/* NIDFRAN POS 2.0 - Venta: costo oculto, controles +/- nativos */
.cart-controls{display:flex;align-items:center;gap:8px;justify-content:flex-end}
.qty-btn{width:38px;height:38px;border-radius:14px;border:1px solid rgba(90,31,22,.16);background:var(--panel);font-size:24px;font-weight:900;color:var(--text);cursor:pointer;box-shadow:var(--shadow-soft)}
.qty-btn.minus{background:#fff1ea;color:var(--primary)}
.qty-btn.plus-mini{background:var(--primary);color:white;border-color:var(--primary)}
.qty-btn:hover{transform:translateY(-1px)}


/* NIDFRAN POS 2.0 - Flujo vendedor -> caja */
.returned-strip{display:grid;gap:10px;margin:0 0 10px 0}
.returned-card{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#fff3e9;border:2px solid var(--color-primary);border-radius:18px;padding:12px 14px;box-shadow:0 8px 18px rgba(217,104,54,.12)}
.returned-card b{display:block;color:var(--color-primary-strong);font-size:1.05rem}.returned-card span{display:block;color:var(--color-muted);font-weight:700;margin-top:3px}
.cash-layout{min-height:0;flex:1;display:grid;grid-template-columns:minmax(340px,480px) 1fr;gap:16px}.cash-list{display:grid;gap:10px;overflow:auto;max-height:calc(100vh - 170px);padding-right:4px}.cash-order{width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left;gap:12px;background:var(--color-panel-2);border:1px solid var(--color-line);border-radius:17px;padding:15px;color:var(--color-text)}.cash-order.active,.cash-order:hover{border-color:var(--color-primary);box-shadow:0 8px 20px rgba(217,104,54,.12)}.cash-order b{display:block;color:var(--color-primary-strong);font-size:1.05rem}.cash-order span{display:block;color:var(--color-muted);font-size:.85rem;margin-top:4px}.cash-order strong{font-size:1.15rem;color:var(--color-brown-dark)}.cash-lines{display:grid;gap:8px;max-height:42vh;overflow:auto}.cash-line{display:flex;justify-content:space-between;gap:10px;background:var(--color-panel-2);border:1px solid var(--color-line);border-radius:15px;padding:12px}.cash-line b{display:block}.cash-line span{display:block;color:var(--color-muted);font-size:.85rem;margin-top:4px}.cash-actions{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:12px}.return-note{background:#fff0e9;border:1px solid var(--color-primary);border-radius:14px;padding:12px;margin:12px 0;color:var(--color-brown-dark)}.history-box{margin-top:12px;background:rgba(255,255,255,.35);border:1px solid var(--color-line);border-radius:16px;padding:12px}.history-box h4{margin:0 0 8px;color:var(--color-brown-dark)}.history-box p{margin:5px 0;color:var(--color-muted);font-size:.9rem}button:disabled{opacity:.55;cursor:not-allowed;filter:grayscale(.2)}
@media(max-width:1050px){.cash-layout{grid-template-columns:1fr}.cash-list{max-height:none}.cash-actions{grid-template-columns:1fr}}

/* NIDFRAN POS 2.0 - Venta/Caja PRO: cliente, vendedor, descuento y cambio */
.sale-info-bar{display:grid;grid-template-columns:1.1fr 1fr .9fr;gap:10px;margin:0 0 12px 0}
.sale-info-bar label{display:grid;gap:5px;background:var(--color-panel);border:1px solid var(--color-line);border-radius:18px;padding:10px 12px;font-weight:950;color:var(--color-brown-dark);box-shadow:0 6px 16px rgba(91,45,35,.07)}
.sale-info-bar input{border:0;background:transparent;color:var(--color-text);font-size:1.16rem;font-weight:950;outline:none}
.qty-btn.minus{background:var(--color-danger)!important;color:#fff!important;border-color:var(--color-danger)!important}
.qty-btn.plus-mini{background:var(--color-success)!important;color:#fff!important;border-color:var(--color-success)!important}
.plus{background:var(--color-success)!important;color:#fff!important}
.cash-client-box{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin-bottom:12px}
.cash-client-box div{background:var(--color-panel-2);border:1px solid var(--color-line);border-radius:15px;padding:10px 12px}
.cash-client-box span{display:block;color:var(--color-muted);font-size:.82rem;font-weight:850}.cash-client-box b{display:block;color:var(--color-brown-dark);font-size:1.08rem;margin-top:3px}
.pay-panel{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px;margin:12px 0}.pay-field{display:grid;gap:6px}.pay-field label{font-weight:950;color:var(--color-brown-dark)}.pay-field input,.pay-field select{width:100%;padding:14px;border:2px solid var(--color-line);border-radius:15px;background:#fffdf8;color:#1f1f1f;font-weight:900;outline:none}.pay-field input:focus,.pay-field select:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px rgba(217,104,54,.14)}.pay-inline{display:grid;grid-template-columns:1fr 85px;gap:8px}.discount-row b{color:var(--color-danger)}.change-row{background:#e8f7ee;border-radius:16px;padding:10px 12px;margin-top:8px}.change-row span,.change-row b{color:var(--color-success)!important}.cash-totals .grand{background:#fff1e8;border-radius:16px;padding:10px 12px;margin-top:6px}
@media(max-width:1050px){.sale-info-bar,.cash-client-box,.pay-panel{grid-template-columns:1fr}}

/* NIDFRAN POS 2.0 - Update cambio/cotizacion visible */
.pos-actions{position:sticky;bottom:0;background:linear-gradient(180deg,rgba(255,247,240,0),var(--color-panel) 24%);padding-top:12px}
#cashChange2{font-size:2.25rem;font-weight:1000}
.change-row{border:2px solid rgba(34,197,94,.22)}
.cash-totals .grand b{font-size:2.2rem}
@media(max-width:680px){.pos-actions{position:relative}.cash-totals .grand b,#cashChange2{font-size:1.75rem}}


/* NIDFRAN POS 2.0 - Update clientes + descuento desde vendedor + ORD fijo */
.pro-sale-info{grid-template-columns:1.2fr .9fr .9fr .85fr}
.pro-sale-info select{border:0;background:transparent;color:var(--color-text);font-size:1.05rem;font-weight:950;outline:none;padding:3px 0}
.pro-sale-info small{font-size:.72rem;color:var(--color-muted);font-weight:850;line-height:1.1}.client-combo{display:grid;grid-template-columns:1fr 42px;gap:8px;align-items:center}.btn.mini{padding:8px 10px;min-height:38px;border-radius:13px}.client-results{display:none;position:absolute;z-index:5;left:0;right:0;top:100%;background:var(--color-panel);border:1px solid var(--color-line);border-radius:18px;box-shadow:var(--shadow);padding:7px;margin-top:4px}.sale-info-bar label:first-child{position:relative}.client-results.open{display:grid;gap:6px}.client-result-row{border:1px solid var(--color-line);background:var(--color-panel-2);border-radius:14px;padding:10px;text-align:left;color:var(--color-text)}.client-result-row b{display:block;color:var(--color-brown-dark);font-size:.98rem}.client-result-row span{display:block;color:var(--color-muted);font-size:.78rem;margin-top:2px}.sale-discount-box{background:var(--color-panel-2);border:1px solid var(--color-line);border-radius:16px;padding:12px;margin-top:10px}.sale-discount-box label{display:block;color:var(--color-brown-dark);font-weight:950;margin-bottom:7px}.customers-layout{min-height:0;flex:1;display:grid;grid-template-columns:minmax(340px,520px) 1fr;gap:16px}.customer-list{display:grid;gap:10px;margin-top:12px;overflow:auto;max-height:calc(100vh - 230px);padding-right:4px}.customer-row{width:100%;display:flex;justify-content:space-between;align-items:center;text-align:left;gap:12px;background:var(--color-panel-2);border:1px solid var(--color-line);border-radius:17px;padding:15px;color:var(--color-text)}.customer-row:hover{border-color:var(--color-primary);box-shadow:0 8px 20px rgba(217,104,54,.12)}.customer-row b{display:block;font-size:1.08rem;color:var(--color-brown-dark)}.customer-row span{display:block;color:var(--color-muted);font-size:.85rem;margin-top:3px}.customer-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}.customer-form label{display:grid;gap:7px;font-weight:950;color:var(--color-brown-dark)}.customer-form input{padding:15px;border:2px solid var(--color-line);border-radius:15px;background:#fffdf8;color:#1f1f1f;font-weight:900;outline:none}.customer-form input:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px rgba(217,104,54,.14)}.customer-form .wide{grid-column:1/-1}.pay-panel-cash-only{grid-template-columns:1fr 1fr}
@media(max-width:1050px){.pro-sale-info,.customers-layout,.customer-form,.pay-panel-cash-only{grid-template-columns:1fr}.client-results{position:static}}
/* Update Caja v1 - estilo nativo */
.readonly-pay{padding:14px;border:2px solid var(--color-line);border-radius:15px;background:#fff7ee;color:var(--color-brown-dark);font-weight:950;min-height:48px;display:flex;align-items:center}


/* Update Cuadre de Caja - modulo separado */
.cashclose-layout{min-height:0;flex:1;display:grid;grid-template-columns:minmax(340px,520px) 1fr;gap:16px}
.close-filters{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.close-filters label{display:grid;gap:6px;font-weight:950;color:var(--color-brown-dark)}.close-filters input{padding:14px;border:2px solid var(--color-line);border-radius:15px;background:#fffdf8;color:#1f1f1f;font-weight:900;outline:none}
.close-kpis{display:grid;grid-template-columns:1fr 1fr;gap:10px}.close-kpis div{background:var(--color-panel-2);border:1px solid var(--color-line);border-radius:16px;padding:14px}.close-kpis span{display:block;color:var(--color-muted);font-weight:850;font-size:.82rem}.close-kpis b{display:block;color:var(--color-brown-dark);font-size:1.22rem;margin-top:4px}
.close-orders{display:grid;gap:10px;overflow:auto;max-height:calc(100vh - 175px);padding-right:4px}.close-order{display:flex;justify-content:space-between;gap:12px;align-items:center;background:var(--color-panel-2);border:1px solid var(--color-line);border-radius:17px;padding:14px}.close-order b{display:block;color:var(--color-primary-strong);font-size:1.05rem}.close-order span{display:block;color:var(--color-muted);font-size:.85rem;margin-top:3px}.close-order strong{font-size:1.16rem;color:var(--color-brown-dark)}
@media(max-width:1050px){.cashclose-layout,.close-filters,.close-kpis{grid-template-columns:1fr}}
@media print{.nf-side,.topbar .status-pills,.btn{display:none!important}.nf-shell{display:block}.main{height:auto;overflow:visible}.card{box-shadow:none}.cashclose-layout{display:block}.close-orders{max-height:none}}


.product-thumb-wrap{position:relative;width:52px;height:52px}.product-thumb{width:52px;height:52px;object-fit:cover;border-radius:12px;border:1px solid var(--color-line);background:#fff;box-shadow:0 8px 18px rgba(70,35,20,.08)}.store-dot{position:absolute;right:-3px;bottom:-3px;width:14px;height:14px;border-radius:99px;border:2px solid var(--color-panel)}.store-dot.in-store{background:var(--color-success)}.store-dot.not-store{background:#cbd5e1}.product-admin-list{display:grid;gap:10px}.product-admin-row{display:grid;grid-template-columns:58px 1fr 110px 110px 80px 100px;gap:12px;align-items:center;padding:12px;border:1px solid var(--color-line);border-radius:18px;background:var(--color-panel-2)}.product-admin-row span{display:block;color:var(--color-muted);font-size:.8rem}.store-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}.store-card{background:var(--color-panel-2);border:1px solid var(--color-line);border-radius:20px;padding:14px;display:grid;gap:7px}.store-card img{width:100%;height:125px;object-fit:cover;border-radius:16px;background:#fff}.store-card b{font-size:1rem}.store-card span,.store-card small{color:var(--color-muted)}.store-card strong{font-size:1.35rem;color:var(--color-primary-strong)}


/* NIDFRAN_POS_2_UPDATE_IMAGEN_LISTA_LIMPIA
   La miniatura queda en columna fija y el nombre nunca se monta detras de la foto. */
.product-row.with-image{
  grid-template-columns:64px 112px minmax(220px,1fr) 105px 105px 92px 58px;
  align-items:center;
}
.product-thumb-wrap{
  width:56px;
  height:56px;
  flex:0 0 56px;
  display:block;
  z-index:1;
}
.product-thumb{
  width:56px;
  height:56px;
  display:block;
}
.product-info{
  min-width:0;
  padding-left:2px;
  overflow:hidden;
}
.product-info .pname{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  line-height:1.18;
}
.product-info .muted{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
@media(max-width:680px){
  .product-row.with-image{
    grid-template-columns:58px minmax(0,1fr) 58px;
  }
  .product-row.with-image .product-thumb-wrap{grid-column:1;grid-row:1 / span 2;width:52px;height:52px;}
  .product-row.with-image .product-thumb{width:52px;height:52px;}
  .product-row.with-image .product-info{grid-column:2;grid-row:1 / span 2;}
  .product-row.with-image .plus{grid-column:3;grid-row:1 / span 2;}
}

/* POS rules settings */
.wide-card{grid-column:1 / -1}
.rules-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:12px}
.rule-box{border:1px solid rgba(90,31,22,.14);border-radius:18px;padding:14px;background:rgba(255,255,255,.45)}
.rule-box h4{margin:0 0 10px 0;color:var(--nf-brown)}
.rule-box label{display:flex;flex-direction:column;gap:6px;margin:9px 0;font-weight:800;font-size:.92rem}
.rule-box input,.rule-box select{border:1px solid rgba(90,31,22,.18);border-radius:12px;padding:10px;background:#fff;color:var(--color-text);font-weight:800}
.switch-line{flex-direction:row!important;align-items:center;gap:9px}.switch-line input{width:18px;height:18px}
.sale-discount-box small{display:block;margin-top:6px;color:var(--muted);font-weight:800}
.img-small .product-thumb-wrap{width:44px;height:44px}.img-small .product-thumb{width:44px;height:44px}
.img-large .product-thumb-wrap{width:70px;height:70px}.img-large .product-thumb{width:70px;height:70px}


/* Update Precio en Venta v1 */
.product-row.price-sale-row{grid-template-columns:64px 112px minmax(220px,1fr) 160px 92px 58px!important;}
.sale-price-select{display:grid;gap:4px;background:rgba(240,164,95,.18);border-radius:13px;padding:7px 8px;font-size:.78rem;font-weight:850;color:var(--color-brown-dark)}
.sale-price-select span{font-size:.72rem;color:var(--color-muted);font-weight:900}.sale-price-select select{border:0;background:transparent;color:var(--color-brown-dark);font-weight:950;outline:none;min-width:0}.link-btn{border:0;background:transparent;color:var(--color-primary-strong);font-weight:900;text-decoration:underline;cursor:pointer;padding:0 0 0 6px}.link-btn:hover{color:var(--color-primary)}
@media(max-width:680px){.product-row.price-sale-row{grid-template-columns:58px minmax(0,1fr) 58px!important}.product-row.price-sale-row .sale-price-select,.product-row.price-sale-row .metric{display:none}.product-row.price-sale-row .code{display:none}}

/* Update Productos v1 completo */
.material-symbols-rounded{font-family:'Material Symbols Rounded';font-weight:normal;font-style:normal;font-size:22px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:'liga';-webkit-font-smoothing:antialiased;vertical-align:-5px}.nav button{gap:10px}.nav .material-symbols-rounded{font-size:22px}.topbar h2 .material-symbols-rounded{font-size:30px;margin-right:8px;color:var(--color-primary)}
.products-v1-layout{min-height:0;flex:1;display:grid;grid-template-columns:minmax(520px,1.1fr) minmax(420px,.9fr);gap:16px}.products-panel,.product-editor-panel{min-height:0}.product-admin-head{display:grid;grid-template-columns:58px minmax(190px,1fr) 130px 95px 95px 95px 75px 82px 40px;gap:10px;padding:10px 12px;color:var(--color-muted);font-weight:950;font-size:.78rem}.product-admin-list.v1{overflow:auto;max-height:calc(100vh - 260px);padding-right:4px}.product-admin-row.v1{width:100%;text-align:left;border:1px solid var(--color-line);cursor:pointer;color:var(--color-text);grid-template-columns:58px minmax(190px,1fr) 130px 95px 95px 95px 75px 82px 40px}.product-admin-row.v1.selected{border-color:var(--color-primary);box-shadow:0 10px 24px rgba(217,104,54,.16);background:#fff9f3}.product-admin-row.v1.inactive{opacity:.62}.product-admin-row.v1 .prod-main b{display:block;color:var(--color-brown-dark);font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.product-admin-row.v1 .prod-main span{font-weight:850}.product-admin-row.v1 div span{font-weight:850}.product-admin-row.v1 div b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}.row-actions{text-align:right;color:var(--color-primary)}.product-editor-head{display:flex;gap:14px;align-items:center;margin-bottom:12px}.product-editor-head h3{margin:0;color:var(--color-brown-dark);font-size:1.45rem}.product-editor-head p{margin:3px 0 0;color:var(--color-muted);font-weight:850}.product-thumb-wrap.big{width:76px;height:76px}.product-thumb.big{width:76px;height:76px;border-radius:18px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.tab-btn{border:1px solid var(--color-line);background:var(--color-panel-2);color:var(--color-brown-dark);border-radius:13px;padding:10px 12px;font-weight:950;cursor:pointer}.tab-btn.active{background:var(--color-primary);color:white;border-color:var(--color-primary)}.product-form-v1{display:grid;gap:14px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid label{display:grid;gap:7px;font-weight:950;color:var(--color-brown-dark)}.form-grid label span{font-size:.88rem}.form-grid input,.form-grid textarea{padding:14px;border:2px solid var(--color-line);border-radius:15px;background:#fffdf8;color:#1f1f1f;font-weight:900;outline:none;min-width:0}.form-grid textarea{resize:vertical;font-family:inherit}.form-grid input:focus,.form-grid textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px rgba(217,104,54,.14)}.form-grid input[readonly]{background:#f7eee5;color:#7c5b4d}.form-grid .wide{grid-column:1/-1}.form-grid small{color:var(--color-muted);font-weight:850}.wide-input{grid-column:1/-1}.metric-card{border:1px solid var(--color-line);border-radius:16px;padding:14px;background:var(--color-panel-2)}.metric-card span{display:block;color:var(--color-muted);font-weight:850}.metric-card b{display:block;color:var(--color-primary-strong);font-size:1.35rem;margin-top:4px}.editor-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}.btn.danger{background:#b91c1c;color:white}.history-list{display:grid;gap:10px}.history-row{border:1px solid var(--color-line);background:var(--color-panel-2);border-radius:16px;padding:13px}.history-row b{display:block;color:var(--color-brown-dark)}.history-row span{display:block;color:var(--color-text);font-weight:850;margin-top:4px}.history-row small{display:block;color:var(--color-muted);margin-top:5px}.empty-state{display:grid;place-items:center;min-height:260px;text-align:center;color:var(--color-muted)}
@media(max-width:1050px){.products-v1-layout{grid-template-columns:1fr}.product-admin-head{display:none}.product-admin-row.v1{grid-template-columns:58px 1fr 80px}.product-admin-row.v1>div:nth-child(3),.product-admin-row.v1>div:nth-child(4),.product-admin-row.v1>div:nth-child(6),.product-admin-row.v1>div:nth-child(8){display:none}.form-grid{grid-template-columns:1fr}.product-admin-list.v1{max-height:none}}


/* ===== NIDFRAN_POS 2.0 FRONTEND COMPLETE V1: docs/commercial modules ===== */
.doc-layout{display:grid;grid-template-columns:minmax(360px,.42fr) minmax(520px,1fr);gap:18px;height:calc(100vh - 112px);min-height:0}
.doc-layout.reports{height:auto;margin-top:18px}
.doc-list-card,.doc-editor{min-height:0;overflow:hidden}
.doc-list{display:grid;gap:10px;max-height:calc(100vh - 240px);overflow:auto;padding-right:4px}
.doc-row{width:100%;display:grid;grid-template-columns:110px 1fr auto;gap:12px;align-items:center;text-align:left;background:var(--color-panel-2);border:1px solid var(--color-line);border-radius:18px;padding:14px;color:var(--color-text)}
.doc-row:hover,.doc-row.selected{outline:3px solid color-mix(in srgb,var(--color-primary) 28%,transparent);background:#fff}
.doc-row b{font-size:1.05rem;color:var(--color-brown-dark)}
.doc-row span{font-weight:800;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.doc-row strong{color:var(--color-primary);font-weight:950}
.doc-row em{font-style:normal;font-size:.82rem;color:var(--color-muted);grid-column:2/4}
.doc-header-grid{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:12px;margin-bottom:14px}
.doc-header-grid .wide{grid-column:span 2}
.doc-header-grid label,.doc-editor label{display:grid;gap:6px;font-weight:900;color:var(--color-brown-dark)}
.doc-header-grid input,.doc-header-grid select,.doc-editor textarea,.doc-editor input,.doc-editor select{background:var(--color-panel-2);border:1px solid var(--color-line);border-radius:14px;padding:12px;color:var(--color-text);font-weight:800}
.doc-editor textarea{min-height:76px;resize:vertical}
.doc-products{margin-top:12px}
.doc-items{display:grid;gap:10px;max-height:42vh;overflow:auto;padding-right:4px}
.doc-item{display:grid;grid-template-columns:58px 1fr 90px 120px 44px;gap:10px;align-items:center;background:var(--color-panel-2);border:1px solid var(--color-line);border-radius:18px;padding:10px}
.doc-item.purchase{grid-template-columns:58px 1fr 86px 110px 86px 105px 44px}
.doc-item img{width:54px;height:54px;border-radius:14px;object-fit:cover;background:#fff;border:1px solid var(--color-line)}
.doc-item b{display:block;font-size:1rem;color:var(--color-text)}
.doc-item span{display:block;color:var(--color-muted);font-size:.86rem;font-weight:800}
.doc-item label{font-size:.75rem;color:var(--color-muted)}
.doc-item input{width:100%;padding:8px;border-radius:12px;border:1px solid var(--color-line);background:#fffaf6;font-weight:900}
.doc-item strong{font-weight:950;color:var(--color-brown-dark);text-align:right}
.doc-totals{margin-top:14px}
.action-strip{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.row-actions{display:flex;gap:8px;flex-wrap:wrap}
.card-title.compact{margin-top:8px}
.card-title.compact select{min-width:260px;background:var(--color-panel-2);border:1px solid var(--color-line);border-radius:14px;padding:10px;font-weight:900}
.empty-state{display:grid;place-items:center;text-align:center;min-height:330px;color:var(--color-muted)}
.report-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:16px}
.report-card .big-number{font-size:2rem}
.summary-list{display:grid;gap:10px}
.summary-list div,.mini-line{display:grid;grid-template-columns:1fr auto;gap:12px;background:var(--color-panel-2);border:1px solid var(--color-line);border-radius:16px;padding:13px;font-weight:900}
.mini-line{grid-template-columns:100px 1fr auto}
.upload-zone{min-height:280px;display:grid;place-items:center;text-align:center;background:linear-gradient(135deg,var(--color-panel-2),var(--color-bg));border:2px dashed var(--color-line);border-radius:24px;padding:28px}
.upload-zone .material-symbols-rounded{font-size:74px;color:var(--color-primary)}
.ok-text{color:var(--color-success)!important}.warn-text{color:#d97706!important}.full{width:100%;margin-top:14px}
.wa-layout{display:grid;grid-template-columns:380px 1fr;gap:18px;height:calc(100vh - 112px)}
.chat-demo{display:grid;gap:12px;background:var(--color-panel-2);border:1px solid var(--color-line);border-radius:20px;padding:18px;min-height:320px}
.msg{max-width:72%;padding:12px 14px;border-radius:18px;font-weight:800}
.msg.in{background:#fff;justify-self:start}.msg.out{background:var(--color-primary);color:white;justify-self:end}
.file-card{background:#fff;border:1px solid var(--color-line);border-radius:16px;padding:14px;font-weight:900}

@media (max-width: 1100px){
  .doc-layout,.wa-layout{grid-template-columns:1fr;height:auto;overflow:auto}
  .doc-header-grid{grid-template-columns:1fr 1fr}
  .report-grid{grid-template-columns:1fr 1fr}
  .doc-item,.doc-item.purchase{grid-template-columns:54px 1fr;align-items:start}
  .doc-item strong,.doc-item button{justify-self:start}
}
@media (max-width: 720px){
  .doc-header-grid,.report-grid{grid-template-columns:1fr}
  .doc-header-grid .wide{grid-column:auto}
}

/* NIDFRAN POS 2.0 - Venta v3 busqueda universal + F4 visible */
.universal-search-bar{display:grid;grid-template-columns:1fr auto auto;gap:10px;background:var(--color-panel);border:1px solid var(--color-line);border-radius:18px;padding:10px;margin-bottom:12px;box-shadow:var(--shadow)}
.universal-search-bar input{width:100%;border:1px solid var(--color-line);border-radius:14px;padding:14px 16px;font-size:1.05rem;font-weight:900;background:#fffdf8;color:var(--color-text);outline:none}
.universal-search-bar input:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px rgba(217,104,54,.14)}
.cart{overflow:hidden}.cart-items{min-height:120px;max-height:calc(100vh - 520px);overflow:auto}.sale-discount-box,.totals,.pos-actions{flex:0 0 auto}.pos-actions{position:relative!important;background:var(--color-panel);padding-top:10px}.pos-actions .wide{font-size:1.05rem;min-height:52px}.nf-modal-overlay{position:fixed;inset:0;background:rgba(31,20,15,.45);z-index:9999;display:flex;align-items:flex-start;justify-content:center;padding:7vh 20px}.nf-modal{background:var(--color-panel);border:1px solid var(--color-line);border-radius:22px;box-shadow:0 24px 80px rgba(0,0,0,.25);width:min(920px,96vw);padding:18px}.modal-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.modal-head h3{margin:0;color:var(--color-brown-dark);font-size:1.45rem}.universal-modal-search{margin-bottom:12px}.universal-results{display:grid;gap:8px;max-height:55vh;overflow:auto}.universal-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;border:1px solid var(--color-line);border-radius:16px;padding:12px;background:var(--color-panel-2)}.universal-row b{display:block;color:var(--color-text);font-size:1.02rem}.universal-row span{display:block;color:var(--color-muted);font-size:.9rem;margin-top:3px}.universal-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.btn.mini{padding:8px 10px;border-radius:12px;font-size:.85rem}
@media(max-width:900px){.universal-search-bar{grid-template-columns:1fr}.universal-row{grid-template-columns:1fr}.universal-actions{justify-content:flex-start}.cart-items{max-height:none}}

/* NIDFRAN POS 2.0 - Venta v3.1: F4 visible + descuento redondeado */
.grid-pos > .cart{
  display:flex;
  flex-direction:column;
  height:auto !important;
  max-height:calc(100vh - 155px);
  position:sticky;
  top:12px;
  overflow:hidden;
}
.grid-pos > .cart .cart-items{
  flex:0 1 auto !important;
  min-height:150px;
  max-height:255px !important;
  overflow:auto;
}
.grid-pos > .cart .sale-discount-box{
  flex:0 0 auto;
  border-radius:22px !important;
  padding:14px !important;
  background:var(--color-panel-2);
  border:1px solid var(--color-line);
}
.grid-pos > .cart .sale-discount-box input,
.grid-pos > .cart .sale-discount-box select{
  min-height:42px;
  border:2px solid var(--color-line);
  border-radius:15px !important;
  background:#fffdf8;
  color:var(--color-text);
  font-weight:950;
  padding:8px 10px;
  outline:none;
}
.grid-pos > .cart .sale-discount-box input:focus,
.grid-pos > .cart .sale-discount-box select:focus{
  border-color:var(--color-primary);
  box-shadow:0 0 0 4px rgba(217,104,54,.14);
}
.grid-pos > .cart .totals{
  flex:0 0 auto;
  margin-top:10px;
  padding-top:10px;
}
.grid-pos > .cart .pos-actions{
  flex:0 0 auto;
  display:grid !important;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin-top:10px;
  padding-top:8px;
  position:relative !important;
  background:var(--color-panel);
  z-index:2;
}
.grid-pos > .cart .pos-actions .wide{
  grid-column:1/-1;
  display:block !important;
  min-height:54px;
  font-size:1.05rem;
  border-radius:18px;
}
@media(max-height:760px){
  .grid-pos > .cart .cart-items{max-height:180px !important;min-height:110px;}
  .grid-pos > .cart .grand{font-size:1.75rem;}
  .grid-pos > .cart .sale-discount-box{padding:10px !important;}
}

/* Venta v3.2 final sin prompt navegador: Buscar factura usa solo modal universal */


/* NIDFRAN POS 2.0 - Caja v2 + Cuadre v2 */
.quick-cash{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 12px}.quick-pay{min-height:38px;padding:8px 12px;border-radius:14px;font-weight:950}.change-row.missing{background:#fff1f1!important}.change-row.missing span,.change-row.missing b{color:var(--color-danger)!important}.readonly-pay{min-height:48px;display:flex;align-items:center;border:2px solid var(--color-line);border-radius:15px;background:#fffdf8;padding:0 14px;font-weight:950;color:var(--color-brown-dark)}
.cashclose-layout.v2{grid-template-columns:minmax(420px,560px) 1fr}.pill.ok{background:#e8f7ee;color:var(--color-success)}.pill.warn{background:#fff1e8;color:var(--color-primary-strong)}.cash-open-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.cash-open-grid label,.movement-form label{display:grid;gap:7px;font-weight:950;color:var(--color-brown-dark)}.cash-open-grid input,.movement-form input,.movement-form select,.denom-grid input{padding:13px 14px;border:2px solid var(--color-line);border-radius:15px;background:#fffdf8;color:var(--color-text);font-weight:950;outline:none}.cash-open-grid input:focus,.movement-form input:focus,.movement-form select:focus,.denom-grid input:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px rgba(217,104,54,.14)}.cash-session-meta{background:var(--color-panel-2);border:1px solid var(--color-line);border-radius:18px;padding:14px;margin:14px 0}.cash-session-meta b{display:block;color:var(--color-brown-dark);font-size:1.08rem}.cash-session-meta span{display:block;color:var(--color-muted);font-weight:800;margin-top:4px}.movement-box{margin-top:16px;background:rgba(255,255,255,.38);border:1px solid var(--color-line);border-radius:20px;padding:14px}.movement-box h4{margin:0 0 10px;color:var(--color-brown-dark)}.movement-form{display:grid;grid-template-columns:140px 130px 1fr auto;gap:8px}.movement-list{display:grid;gap:8px;margin-top:12px}.movement-list div{display:grid;grid-template-columns:1fr auto;background:var(--color-panel-2);border:1px solid var(--color-line);border-radius:15px;padding:11px}.movement-list b{color:var(--color-brown-dark)}.movement-list span{color:var(--color-muted);font-weight:800}.close-kpis.mini{grid-template-columns:repeat(2,1fr);margin-top:14px}.denom-grid{display:grid;grid-template-columns:repeat(2,minmax(170px,1fr));gap:10px}.denom-grid label{display:grid;grid-template-columns:80px 1fr 110px;align-items:center;gap:8px;background:var(--color-panel-2);border:1px solid var(--color-line);border-radius:16px;padding:10px;font-weight:950}.denom-grid span{color:var(--color-brown-dark)}.denom-grid input{text-align:center;min-width:0}.denom-grid b{text-align:right;color:var(--color-primary-strong)}.close-kpis.final{grid-template-columns:repeat(3,minmax(150px,1fr));margin-top:14px}.close-kpis .good b{color:var(--color-success)!important}.close-kpis .bad b{color:var(--color-danger)!important}@media(max-width:1050px){.cashclose-layout.v2,.cash-open-grid,.movement-form,.denom-grid,.close-kpis.final,.close-kpis.mini{grid-template-columns:1fr}.denom-grid label{grid-template-columns:90px 1fr 100px}}


/* Clientes DGII / Datacentel v1 */
.customer-mode-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0 14px 0}
.customer-form-pro .input-action,.input-action{display:flex;gap:8px;align-items:center}
.input-action input{flex:1;min-width:0}
.input-action .btn{white-space:nowrap;border-radius:14px}
.fiscal-result{border:1px dashed rgba(217,104,54,.45);border-radius:14px;padding:12px;background:rgba(255,247,240,.8);font-weight:800;color:var(--text)}
.fiscal-result.bad{color:#b91c1c;background:#fff1f1;border-color:#f0b3b3}
.dgii-sale-btn{min-width:58px;font-weight:900;color:var(--primary)}

/* NIDFRAN CLIENTES DGII V2 */
.customer-stats{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:10px;margin:14px 0 10px 0}
.customer-stats div{border:1px solid var(--color-line);background:var(--color-panel-2);border-radius:16px;padding:13px}
.customer-stats span{display:block;color:var(--color-muted);font-size:.78rem;font-weight:900;margin-bottom:5px}
.customer-stats b{display:block;color:var(--color-brown-dark);font-size:1.02rem}
.customer-form input[readonly]{background:rgba(91,49,35,.06);color:var(--color-brown-dark)}
@media(max-width:1050px){.customer-stats{grid-template-columns:1fr 1fr}}

/* Fiscal DGII PRO 2.0 */
.fiscal-top h2{display:flex;align-items:center;gap:10px}.fiscal-pro{display:grid;gap:14px}.fiscal-tabs{display:flex;flex-wrap:wrap;gap:8px}.fiscal-tabs .tab-btn{display:flex;align-items:center;gap:7px}.fiscal-cards{grid-template-columns:repeat(5,minmax(160px,1fr));margin-bottom:14px}.fiscal-metric .big-number{font-size:2rem;color:var(--color-primary-strong)}.fiscal-metric.ok .big-number{color:#15803d}.fiscal-metric.warning .big-number{color:#d97706}.fiscal-metric.danger .big-number{color:#b91c1c}.fiscal-panel{min-height:0}.fiscal-note{margin:10px 0;padding:12px;border:1px dashed rgba(217,104,54,.35);border-radius:15px;background:rgba(255,247,240,.75);font-weight:850;color:var(--color-brown-dark)}.fiscal-filterbar{display:grid;grid-template-columns:2fr repeat(4,minmax(130px,.7fr)) auto;gap:10px;margin:10px 0 14px}.fiscal-filterbar input,.fiscal-filterbar select,.fiscal-config-grid input,.fiscal-config-grid select,.fiscal-dc-grid input{border:2px solid var(--color-line);background:#fffdf8;border-radius:14px;padding:12px;font-weight:900;outline:none}.fiscal-filterbar input:focus,.fiscal-filterbar select:focus,.fiscal-config-grid input:focus,.fiscal-config-grid select:focus,.fiscal-dc-grid input:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px rgba(217,104,54,.12)}.fiscal-table-wrap{overflow:auto;border:1px solid var(--color-line);border-radius:18px;background:var(--color-panel-2)}.fiscal-table{width:100%;border-collapse:collapse;min-width:1050px}.fiscal-table th,.fiscal-table td{padding:12px 10px;border-bottom:1px solid var(--color-line);text-align:left;font-weight:850}.fiscal-table th{font-size:.82rem;color:var(--color-muted);text-transform:uppercase;background:#fff8ef}.status-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:7px 10px;font-weight:950;font-size:.78rem;border:1px solid var(--color-line);background:#fff}.status-badge.ok{background:#ecfdf5;border-color:#bbf7d0;color:#15803d}.status-badge.warn{background:#fff7ed;border-color:#fed7aa;color:#c2410c}.status-badge.bad{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.status-badge.neutral{background:#f8fafc;color:#475569}.fiscal-doc-list{display:grid;gap:10px}.fiscal-doc-card{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;border:1px solid var(--color-line);border-radius:18px;padding:13px;background:var(--color-panel-2)}.fiscal-doc-card b{display:block;font-size:1.08rem;color:var(--color-primary-strong)}.fiscal-doc-card span,.fiscal-doc-card small{display:block;font-weight:850;color:var(--color-muted);margin-top:3px}.fiscal-config-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.fiscal-config-grid label,.fiscal-dc-grid label{display:grid;gap:7px;font-weight:950;color:var(--color-brown-dark)}.fiscal-config-grid .wide{grid-column:span 2}.fiscal-dc-grid{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end}.dc-result{margin-top:12px;border:1px solid var(--color-line);border-radius:16px;padding:14px;background:var(--color-panel-2);font-weight:900}.dc-result.ok{border-color:#bbf7d0;background:#ecfdf5;color:#166534}.dc-result.bad{border-color:#fecaca;background:#fef2f2;color:#b91c1c}@media(max-width:1200px){.fiscal-cards{grid-template-columns:repeat(2,1fr)}.fiscal-filterbar,.fiscal-config-grid{grid-template-columns:1fr 1fr}.fiscal-config-grid .wide{grid-column:1/-1}.fiscal-doc-card{grid-template-columns:1fr}.fiscal-filterbar button{width:100%}}@media(max-width:760px){.fiscal-cards,.fiscal-filterbar,.fiscal-config-grid,.fiscal-dc-grid{grid-template-columns:1fr}.fiscal-tabs{overflow:auto;flex-wrap:nowrap}.fiscal-tabs .tab-btn{white-space:nowrap}}

/* NIDFRAN POS 2.0 - DGII PRO 2.1 Series e-CF */
.fiscal-two-col{display:grid;grid-template-columns:minmax(320px,.8fr) minmax(520px,1.4fr);gap:14px;align-items:start}
.series-mini-grid{display:grid;grid-template-columns:repeat(2,minmax(160px,1fr));gap:10px}
.series-mini{border:1px solid var(--color-line);border-radius:16px;padding:12px;background:var(--color-panel-2);display:grid;gap:6px}
.series-mini b{font-size:1.15rem;color:var(--color-primary-strong)}
.series-mini span{font-weight:950;color:var(--text)}
.series-table{min-width:1180px}
.series-table input.series-input{width:100%;min-width:95px;border:2px solid var(--color-line);background:#fffdf8;border-radius:12px;padding:9px 10px;font-weight:950;outline:none;color:var(--text)}
.series-table input.series-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px rgba(217,104,54,.12)}
.series-encf{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:8px 10px;background:#fff7ed;border:1px solid rgba(217,104,54,.28);font-weight:1000;color:var(--color-primary-strong);white-space:nowrap}
.switch-mini{display:inline-flex;align-items:center;gap:7px;font-weight:950;background:#fff7ed;border:1px solid rgba(217,104,54,.25);padding:7px 10px;border-radius:999px;white-space:nowrap}
.switch-mini input{width:18px;height:18px;accent-color:var(--color-primary)}
@media(max-width:1200px){.fiscal-two-col{grid-template-columns:1fr}.series-mini-grid{grid-template-columns:repeat(3,minmax(120px,1fr))}}
@media(max-width:760px){.series-mini-grid{grid-template-columns:1fr}}
/* DGII PRO 2.2 TrackID completo */
.fiscal-track-kpis{display:grid;grid-template-columns:repeat(5,minmax(140px,1fr));gap:12px;margin:8px 0 12px}
.fiscal-track-kpis .module-card{min-height:96px;padding:14px}
.track-quickbar{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 10px}
.track-quickbar .btn.mini{height:38px;border-radius:14px;font-weight:950}
@media(max-width:1200px){.fiscal-track-kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.fiscal-track-kpis{grid-template-columns:1fr}}

/* DGII PRO 2.4 refinamientos */
.status-pills .pill.ok{background:#e9fff2;color:#087b3d;border-color:#b7efcd;}
.status-pills .pill.warn{background:#fff7df;color:#965800;border-color:#f6d28b;}
.fiscal-track-kpis .fiscal-metric{min-height:118px;}
.actions-mini .btn{white-space:nowrap;}

/* OCR COMPRAS PRO 4.0 */
.ocr-pro-layout{display:grid;grid-template-columns:minmax(330px,.34fr) minmax(680px,1fr);gap:18px;height:calc(100vh - 112px);min-height:0}.ocr-left,.ocr-editor{min-height:0;overflow:auto}.upload-zone.compact{min-height:170px}.file-btn{position:relative;overflow:hidden}.ocr-history{margin-top:14px;display:grid;gap:10px}.ocr-header-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:12px}.ocr-header-grid label{display:grid;gap:6px;font-weight:950;color:var(--color-brown-dark)}.ocr-header-grid input{border:2px solid var(--color-line);border-radius:15px;background:#fffdf8;padding:12px 13px;font-weight:900;outline:none}.ocr-header-grid input:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px rgba(217,104,54,.12)}.ocr-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:12px 0}.ocr-kpis div{background:var(--color-panel-2);border:1px solid var(--color-line);border-radius:18px;padding:13px}.ocr-kpis span{display:block;color:var(--color-muted);font-weight:850}.ocr-kpis b{display:block;font-size:1.35rem;color:var(--color-brown-dark);margin-top:4px}.ocr-kpis .grand{background:linear-gradient(135deg,var(--color-primary),var(--color-accent));color:#fff}.ocr-kpis .grand span,.ocr-kpis .grand b{color:#fff}.ocr-filters{display:flex;gap:8px;flex-wrap:wrap}.ocr-table-wrap{border:1px solid var(--color-line);border-radius:20px;overflow:auto;background:var(--color-panel-2);max-height:48vh}.ocr-table{width:100%;border-collapse:collapse;min-width:1180px}.ocr-table th,.ocr-table td{border-bottom:1px solid var(--color-line);padding:9px;text-align:left;vertical-align:middle}.ocr-table th{position:sticky;top:0;background:#fff8ef;z-index:1;font-size:.78rem;text-transform:uppercase;color:var(--color-muted);font-weight:950}.ocr-table tr.exact{background:rgba(236,253,245,.5)}.ocr-table tr.similar{background:rgba(255,247,237,.65)}.ocr-table tr.missing{background:rgba(254,242,242,.55)}.ocr-table img,.ocr-no-img{width:48px;height:48px;border-radius:14px;object-fit:cover;border:1px solid var(--color-line);background:#fff;display:grid;place-items:center}.ocr-no-img span{color:var(--color-muted)}.ocr-table input,.ocr-table select,.ocr-table textarea{width:100%;border:1px solid var(--color-line);border-radius:12px;background:#fffdf8;padding:8px 9px;font-weight:850;outline:none}.ocr-table textarea{min-height:48px;resize:vertical}.ocr-table small{display:block;margin-top:4px;color:var(--color-muted);font-weight:850}.ocr-table small input{margin-top:3px}.ocr-table .status-badge{white-space:nowrap}.ocr-table b{color:var(--color-brown-dark);white-space:nowrap}@media(max-width:1100px){.ocr-pro-layout,.ocr-header-grid,.ocr-kpis{grid-template-columns:1fr;height:auto}.ocr-table-wrap{max-height:none}}

/* OCR PRO 4.1 - PAP automatico bloqueado */
.ocr-auto-pap{
  margin-top:6px;
  padding:7px 9px;
  border:1px dashed rgba(217,104,54,.45);
  border-radius:12px;
  background:rgba(217,104,54,.07);
  color:#7c2d12;
  font-weight:800;
  font-size:.82rem;
}
.ocr-rule{
  margin-top:10px;
  border:1px dashed rgba(217,104,54,.45);
  background:rgba(255,247,240,.85);
  border-radius:14px;
  padding:10px 12px;
  color:#5b3327;
}

/* ===== Conduces PRO 2.1 Visual Refresh ===== */
.con-pro-layout{display:grid;grid-template-columns:360px minmax(0,1fr);gap:14px;align-items:start}.con-pro-list-card,.con-pro-editor-card{min-height:calc(100vh - 110px)}.con-pro-list{display:grid;gap:10px;margin-top:12px}.con-pro-row{width:100%;text-align:left;border:1px solid var(--line);background:var(--panel2);border-radius:18px;padding:12px;display:grid;gap:8px;cursor:pointer}.con-pro-row.active{border-color:var(--primary);box-shadow:0 0 0 2px rgba(217,104,54,.10)}.con-pro-row-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.con-pro-row-body{display:grid;gap:2px}.con-pro-row-body small{color:var(--color-muted);font-weight:800}.con-pro-status{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:7px 10px;font-weight:900;font-size:.82rem;border:1px solid var(--line);background:#fff7ef;color:#7a3f28}.con-pro-status .material-symbols-outlined{font-size:16px}.con-pro-status.ok{background:#dcfce7;color:#166534;border-color:#86efac}.con-pro-status.warn{background:#fff7d6;color:#8a5a00;border-color:#f4d06f}.con-pro-status.bad{background:#fee2e2;color:#991b1b;border-color:#fecaca}.con-pro-status.pending{background:#fff4e8;color:#8a4b20;border-color:#f0c9ad}.empty-state{border:1px dashed rgba(217,104,54,.35);background:rgba(255,248,240,.8);border-radius:16px;padding:18px;color:#5a2f1d;display:grid;gap:4px}.empty-state span{color:var(--color-muted);font-weight:800}.con-pro-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}.con-title-line{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.con-title-line h3{margin:0}.con-pro-head p{margin:4px 0 0;color:var(--color-muted);font-weight:800}.con-head-actions{display:flex;gap:8px}.con-pro-grid{display:grid;grid-template-columns:320px 1fr;gap:12px;margin-bottom:12px}.con-panel{border:1px solid var(--line);background:var(--panel2);border-radius:18px;padding:14px}.con-panel-title{display:flex;align-items:center;gap:8px;margin-bottom:12px;color:#5a2f1d}.con-panel-title .material-symbols-outlined{font-size:20px;color:var(--primary)}.con-panel-title em{margin-left:auto;color:var(--color-muted);font-style:normal;font-weight:800;font-size:.86rem}.con-summary-panel{background:linear-gradient(135deg,#fff8f0,#fff1e6)}.con-summary-code{font-size:2rem;font-weight:950;color:var(--primary);letter-spacing:.5px}.con-summary-client{font-size:1.2rem;font-weight:950;margin-top:2px}.con-summary-meta{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.con-summary-meta span,.con-summary-origin{border:1px solid var(--line);background:#fff;border-radius:999px;padding:7px 10px;font-weight:850;color:#5a2f1d}.con-source-row{display:grid;grid-template-columns:160px 1fr auto;gap:8px}.con-source-row select,.con-source-row input,.con-field input,.con-field select,.con-field textarea{width:100%;border:1px solid var(--line);background:#fffdf8;border-radius:14px;padding:12px 13px;font-weight:850;color:#28140e}.con-pro-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.con-form-two{display:grid;grid-template-columns:1fr 1fr;gap:10px}.con-form-three{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.con-field{display:grid;gap:6px}.con-field span{font-weight:900;color:#5a2f1d}.con-field.wide{grid-column:1/-1}.con-products-panel{margin-bottom:12px}.con-product-results{display:grid;gap:8px;margin:8px 0}.con-prod-row{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:#fffdf8;border-radius:14px;padding:9px 10px;text-align:left}.con-prod-row img{width:42px;height:42px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}.con-prod-row div{display:grid}.con-prod-row span{color:var(--color-muted);font-weight:800}.con-prod-row strong{margin-left:auto;color:var(--primary);font-size:1.4rem}.con-items-pro{display:grid;gap:10px;margin-top:10px}.con-item-pro{display:grid;grid-template-columns:54px 1fr auto;gap:12px;align-items:center;border:1px solid var(--line);background:#fff8f0;border-radius:16px;padding:10px}.con-item-pro img{width:54px;height:54px;object-fit:cover;border-radius:14px;border:1px solid var(--line)}.con-item-main{display:grid;gap:3px}.con-item-main b{color:var(--primary)}.con-item-main span{font-weight:950}.con-qty-box{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:7px 8px}.con-qty-box small{color:var(--color-muted);font-weight:900}.con-sign-panel{margin-bottom:12px}.con-sign-boxes{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.con-sign-boxes div{height:78px;border:1px dashed rgba(90,47,29,.35);border-radius:16px;background:#fffdf8;color:var(--color-muted);font-weight:900;display:flex;align-items:flex-end;justify-content:center;padding-bottom:10px}.con-actions-pro{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr 1.1fr;gap:10px}.btn.warn{background:#f6c790;color:#5a2f1d;border-color:#f1b36a}@media(max-width:1300px){.con-pro-layout{grid-template-columns:1fr}.con-pro-grid,.con-pro-form-grid{grid-template-columns:1fr}.con-actions-pro{grid-template-columns:1fr 1fr}.con-form-three{grid-template-columns:1fr}}@media(max-width:760px){.con-source-row,.con-form-two{grid-template-columns:1fr}.con-actions-pro{grid-template-columns:1fr}.con-sign-boxes{grid-template-columns:1fr}.con-item-pro{grid-template-columns:48px 1fr}.con-qty-box{grid-column:1/-1;justify-content:center}}


/* WhatsApp PRO 2.1 - Centro de impresion + FastStone */
.wa-pro-layout{display:grid;grid-template-columns:320px minmax(520px,1fr) 330px;gap:16px;align-items:stretch;height:calc(100vh - 112px)}
.wa-chat-list,.wa-center,.wa-side-panel{min-height:0;overflow:auto}
.wa-filters{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 12px}.wa-filters button{border:1px solid var(--line);background:var(--panel2);border-radius:999px;padding:7px 10px;font-weight:800;cursor:pointer}.wa-filters button.active{background:var(--primary);color:#fff;border-color:var(--primary)}
.wa-conv{width:100%;display:grid;grid-template-columns:16px 1fr auto;gap:10px;align-items:center;border:1px solid var(--line);background:var(--panel2);border-radius:16px;padding:12px;margin-bottom:10px;text-align:left;cursor:pointer}.wa-conv.active{outline:3px solid color-mix(in srgb,var(--primary) 25%,transparent);border-color:var(--primary)}.wa-conv b{display:block;font-size:15px}.wa-conv span,.wa-conv em{display:block;color:var(--muted);font-style:normal;font-size:12px}.wa-conv strong{font-size:12px;color:var(--primary)}
.wa-status-dot{width:10px;height:10px;border-radius:50%;display:block}.wa-status-dot.pendiente{background:#f59e0b}.wa-status-dot.preparando{background:#3b82f6}.wa-status-dot.listo{background:#22c55e}.wa-status-dot.impreso{background:#64748b}.wa-status-dot.entregado{background:#16a34a}.wa-badge.pendiente{background:#fff7ed}.wa-badge.preparando{background:#eff6ff}.wa-badge.listo{background:#f0fdf4}.wa-badge.impreso{background:#f1f5f9}.wa-badge.entregado{background:#ecfdf5}
.wa-file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}.wa-file-card{display:grid;grid-template-columns:58px 1fr;gap:10px;align-items:center;border:1px solid var(--line);border-radius:18px;background:var(--panel2);padding:10px;text-align:left;cursor:pointer}.wa-file-card.active{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 18%,transparent)}.wa-file-card b{display:block}.wa-file-card span{font-size:12px;color:var(--muted)}.wa-thumb{height:58px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#fff7f0,#f3d8c4);color:var(--primary)}.wa-thumb .material-symbols-rounded{font-size:32px}.wa-thumb.pdf{background:#fee2e2;color:#dc2626}.wa-thumb.excel{background:#dcfce7;color:#16a34a}.wa-thumb.word{background:#dbeafe;color:#2563eb}
.wa-print-studio{margin-top:14px;border:1px solid var(--line);border-radius:22px;background:var(--panel2);padding:14px}.wa-preview-box{min-height:180px;border:2px dashed color-mix(in srgb,var(--primary) 35%,var(--line));border-radius:22px;display:grid;place-items:center;text-align:center;background:var(--panel)}.wa-preview-box .material-symbols-rounded{font-size:58px;color:var(--primary)}.wa-preview-box b,.wa-preview-box small{display:block}.wa-edit-actions,.wa-quick-recipes{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.wa-edit-actions .btn,.wa-quick-recipes .btn{display:inline-flex;align-items:center;gap:6px}.wa-paper-panel{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px}.wa-paper-panel label,.wa-field{display:flex;flex-direction:column;gap:5px;font-weight:900;color:var(--muted)}.wa-paper-panel input,.wa-paper-panel select,.wa-field select,.wa-field textarea{border:1px solid var(--line);border-radius:14px;padding:10px;background:var(--panel);color:var(--text);font-weight:800}
.wa-client-summary{display:grid;gap:10px}.wa-client-summary div,.wa-stats div{border:1px solid var(--line);border-radius:16px;padding:10px;background:var(--panel2)}.wa-client-summary span,.wa-stats span{display:block;color:var(--muted);font-size:12px;font-weight:900}.wa-client-summary b,.wa-stats b{display:block;margin-top:3px}.wa-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0}.wa-actions{display:grid;gap:8px;margin-top:12px}.wa-actions .btn{justify-content:center;display:flex;align-items:center;gap:6px}.wa-folder-tree{margin-top:14px;border:1px solid var(--line);border-radius:18px;background:var(--panel2);padding:12px}.wa-folder-tree p{font-family:ui-monospace,Consolas,monospace;line-height:1.5;color:var(--muted)}
@media(max-width:1150px){.wa-pro-layout{grid-template-columns:1fr;height:auto}.wa-paper-panel{grid-template-columns:1fr}}

/* WhatsApp PRO 2.2 - Bot automatico */
.wa-bot-rule{border:1px dashed rgba(217,104,54,.38);background:rgba(255,247,240,.85);border-radius:16px;padding:10px 12px;margin:8px 0 12px;display:grid;gap:3px}
.wa-bot-rule b{color:var(--color-primary-strong)}.wa-bot-rule span{font-size:.83rem;color:var(--color-muted);font-weight:850}
.wa-thread{display:grid;gap:8px;border:1px solid var(--line);border-radius:18px;background:var(--panel2);padding:12px;margin-bottom:12px;max-height:190px;overflow:auto}
.wa-msg{max-width:78%;border-radius:18px;padding:10px 12px;background:#fff;border:1px solid var(--line)}
.wa-msg.client{justify-self:start;background:#fff;color:#3b2318}
.wa-msg.bot{justify-self:end;background:#fff8f0;color:#4b2418!important;border:1px solid #f0c9ad}
.wa-msg.bot *{color:#4b2418!important}
.wa-msg b,.wa-msg p,.wa-msg small{display:block;margin:0}
.wa-msg p{margin:4px 0;font-weight:850}
.wa-msg small{opacity:1;font-size:.74rem;color:#7a5a4a!important}
.wa-bot-panel{border:1px solid var(--line);border-radius:18px;background:var(--panel2);padding:12px;margin:12px 0;display:grid;grid-template-columns:1fr 1fr;gap:8px}.wa-bot-panel div{grid-column:1/-1;display:grid;gap:3px}.wa-bot-panel b{display:flex;align-items:center;gap:6px;color:var(--color-primary-strong)}.wa-bot-panel span{font-size:.82rem;color:var(--color-muted);font-weight:850}.wa-bot-panel .btn{font-size:.82rem;padding:9px 10px}
@media(max-width:1150px){.wa-msg{max-width:92%}.wa-bot-panel{grid-template-columns:1fr}}

/* Impresion PRO 2.0 - Tickets + Labels */
.print-layout{display:grid;grid-template-columns:minmax(430px,.44fr) minmax(560px,1fr);gap:16px;height:calc(100vh - 112px);min-height:0}.print-left,.print-preview-panel{min-height:0;overflow:auto}.print-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.print-tabs .tab-btn{display:inline-flex;align-items:center;gap:6px}.print-search{margin:10px 0}.print-product-list{display:grid;gap:9px;max-height:calc(100vh - 310px);overflow:auto;padding-right:4px}.print-product-row{width:100%;display:grid;grid-template-columns:56px 1fr 28px;gap:10px;align-items:center;border:1px solid var(--color-line);background:var(--color-panel-2);border-radius:17px;padding:10px;text-align:left;color:var(--color-text);cursor:pointer}.print-product-row.selected{border-color:var(--color-primary);background:#fff9f3;box-shadow:0 8px 18px rgba(217,104,54,.13)}.print-product-row img{width:54px;height:54px;border-radius:15px;object-fit:cover;border:1px solid var(--color-line);background:#fff}.print-product-row b{display:block;color:var(--color-brown-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.print-product-row span{display:block;color:var(--color-muted);font-size:.82rem;font-weight:850}.print-preview-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}.print-preview-head h3{margin:0;color:var(--color-brown-dark);font-size:1.45rem}.print-preview-head p{margin:4px 0 0;color:var(--color-muted);font-weight:850}.label-options{display:grid;grid-template-columns:1fr 110px 1fr;gap:10px;margin-bottom:14px}.label-options label{display:grid;gap:6px;font-weight:950;color:var(--color-brown-dark)}.label-options input,.label-options select{border:2px solid var(--color-line);border-radius:15px;background:#fffdf8;color:#1f1f1f;padding:12px;font-weight:900}.label-preview-wrap{display:grid;place-items:center;min-height:290px;border:1px dashed rgba(217,104,54,.42);border-radius:24px;background:linear-gradient(135deg,#fffdf8,#fff2e6);padding:20px}.label-preview{background:#fff;border:2px solid #1f2937;border-radius:10px;color:#111827;display:grid;place-items:center;text-align:center;padding:10px;box-shadow:0 12px 28px rgba(0,0,0,.12)}.label-preview b{font-size:.9rem}.label-preview strong{font-size:1.05rem;line-height:1.1;max-width:220px}.label-preview span{font-size:1.35rem;font-weight:950}.label-preview small{font-size:.68rem;letter-spacing:.06em}.label-preview.30x20{width:250px;height:155px}.label-preview.40x30{width:330px;height:225px}.label-preview.50x30{width:390px;height:235px}.barcode{height:38px;display:flex;align-items:stretch;gap:3px;margin:4px 0}.barcode i{display:block;background:#111827;width:4px}.barcode i:nth-child(2n){width:7px}.barcode i:nth-child(3n){width:2px}.print-actions-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.label-options.label-options-pro{grid-template-columns:minmax(190px,1fr) 100px minmax(190px,1fr) minmax(150px,1fr) 170px}.label-setup-row{margin-top:-6px;margin-bottom:12px}.label-price-toggle input{width:18px;height:18px;accent-color:var(--color-primary)}
.checkline{display:flex;align-items:center;gap:9px;border:2px solid var(--color-line);border-radius:15px;background:#fffdf8;color:#5a2f1d;padding:10px 12px;min-height:46px;font-weight:950}
.checkline input{width:19px;height:19px;accent-color:var(--color-primary);padding:0!important;border-radius:6px!important}
.checkline b{font-size:.92rem;white-space:nowrap}.label-preview.no-price{gap:5px}.nf-label.no-price .nf-name{max-height:13mm}.nf-label.no-price .nf-barcode{margin-top:1mm}
@media(max-width:1150px){.label-options.label-options-pro{grid-template-columns:1fr}}
.print-tool-grid{display:grid;grid-template-columns:repeat(2,minmax(160px,1fr));gap:10px;margin-top:8px}.print-tool{border:1px solid var(--color-line);background:var(--color-panel-2);border-radius:18px;padding:14px;display:grid;gap:5px;text-align:left;color:var(--color-text);cursor:pointer}.print-tool:hover{border-color:var(--color-primary);box-shadow:0 8px 20px rgba(217,104,54,.12)}.print-tool .material-symbols-rounded{color:var(--color-primary);font-size:32px}.print-tool b{color:var(--color-brown-dark)}.print-tool small{color:var(--color-muted);font-weight:850}.print-note{margin-top:12px;border:1px dashed rgba(217,104,54,.42);background:#fff8f0;border-radius:16px;padding:12px;color:#5b3327;font-weight:850}.print-history{display:grid;gap:9px}.ticket-preview{max-width:310px;margin:10px auto;background:white;border:1px solid #d1d5db;border-radius:12px;padding:18px;color:#111827;font-family:ui-monospace,Consolas,monospace}.ticket-preview h3{text-align:center;margin:0 0 5px}.ticket-preview p{text-align:center;margin:3px 0;font-size:.78rem}.ticket-preview div{display:flex;justify-content:space-between;gap:12px;margin:8px 0}.ticket-preview .grand{font-size:1.15rem;font-weight:950}.ticket-preview .thanks{font-weight:900;margin-top:12px}.doc-print-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.doc-print-grid div{border:1px solid var(--color-line);background:var(--color-panel-2);border-radius:18px;padding:18px}.doc-print-grid span{display:block;color:var(--color-muted);font-weight:850}.doc-print-grid b{display:block;color:var(--color-brown-dark);font-size:1.2rem;margin-top:5px}.editor-actions .material-symbols-rounded{font-size:18px;vertical-align:middle;margin-right:4px}@media(max-width:1150px){.print-layout{grid-template-columns:1fr;height:auto}.label-options,.print-tool-grid,.doc-print-grid{grid-template-columns:1fr}}
@media print{.print-left,.nf-side,.topbar,.print-preview-head .btn,.print-actions-row{display:none!important}.print-layout{display:block;height:auto}.print-preview-panel{box-shadow:none;border:0}.label-preview-wrap{border:0;background:white}.label-preview{box-shadow:none;page-break-inside:avoid}}

/* Inventario PRO 2.0 */
.inv-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}.inv-tabs .tab-btn{display:inline-flex;align-items:center;gap:6px}.inv-kpis{display:grid;grid-template-columns:repeat(6,minmax(140px,1fr));gap:12px;margin-bottom:14px}.inv-kpi{border:1px solid var(--color-line);background:var(--color-panel-2);border-radius:20px;padding:14px;display:flex;gap:12px;align-items:center}.inv-kpi .material-symbols-rounded{font-size:34px;color:var(--color-primary)}.inv-kpi small{display:block;color:var(--color-muted);font-weight:900}.inv-kpi b{display:block;font-size:1.3rem;color:var(--color-brown-dark)}.inv-kpi.warn{background:#fff7d6}.inv-kpi.bad{background:#fee2e2}.inv-layout{display:grid;grid-template-columns:390px minmax(0,1fr);gap:14px;align-items:start}.inv-list-card,.inv-detail-card{min-height:calc(100vh - 230px)}.inv-product-list{display:grid;gap:9px;margin-top:10px;max-height:calc(100vh - 330px);overflow:auto;padding-right:4px}.inv-product-row{width:100%;display:grid;grid-template-columns:58px 1fr auto;gap:10px;align-items:center;border:1px solid var(--color-line);background:var(--color-panel-2);border-radius:18px;padding:10px;text-align:left;cursor:pointer;color:var(--color-text)}.inv-product-row.active{border-color:var(--color-primary);background:#fff8f0;box-shadow:0 0 0 3px rgba(217,104,54,.12)}.inv-product-row img{width:56px;height:56px;object-fit:cover;border-radius:15px;border:1px solid var(--color-line);background:#fff}.inv-product-row b,.inv-product-row strong{display:block;color:var(--color-brown-dark)}.inv-product-row span{display:block;color:var(--color-muted);font-size:.82rem;font-weight:850}.inv-stock,.inv-status{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:8px 10px;font-weight:950;border:1px solid var(--color-line);background:#fff}.inv-stock.ok,.inv-status.ok{background:#dcfce7;color:#166534;border-color:#86efac}.inv-stock.warn,.inv-status.warn{background:#fff7d6;color:#8a5a00;border-color:#f4d06f}.inv-stock.bad,.inv-status.bad{background:#fee2e2;color:#991b1b;border-color:#fecaca}.inv-product-head{display:grid;grid-template-columns:96px 1fr;gap:14px;align-items:center;margin-bottom:14px}.inv-product-head img{width:96px;height:96px;border-radius:22px;object-fit:cover;border:1px solid var(--color-line);background:#fff}.inv-title-line{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.inv-title-line h3{margin:0;color:var(--color-brown-dark);font-size:1.5rem}.inv-product-head p{margin:5px 0 0;color:var(--color-muted);font-weight:850}.inv-detail-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px}.inv-mini{border:1px solid var(--color-line);background:var(--color-panel-2);border-radius:18px;padding:12px}.inv-mini span{display:block;color:var(--color-muted);font-weight:900}.inv-mini b{display:block;margin-top:5px;color:var(--color-brown-dark);font-size:1.25rem}.inner-card{margin-top:10px}.inv-move-row{display:grid;grid-template-columns:1fr auto;gap:10px;border:1px solid var(--color-line);background:#fffdf8;border-radius:14px;padding:10px;margin:7px 0}.inv-move-row span,.inv-move-row small{display:block;color:var(--color-muted);font-weight:850}.inv-move-row strong.ok{color:#166534}.inv-move-row strong.bad{color:#991b1b}.inv-actions-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.table-wrap{overflow:auto;border:1px solid var(--color-line);border-radius:18px;background:var(--color-panel-2)}.table-wrap table{width:100%;border-collapse:collapse;min-width:900px}.table-wrap th,.table-wrap td{padding:10px;border-bottom:1px solid var(--color-line);text-align:left}.table-wrap th{background:#fff8ef;color:var(--color-muted);text-transform:uppercase;font-size:.78rem}.ok{color:#166534}.bad{color:#991b1b}.inv-adjust-form{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.inv-adjust-form label{display:grid;gap:6px;font-weight:950;color:var(--color-brown-dark)}.inv-adjust-form input,.inv-adjust-form select,.inv-adjust-form textarea{border:2px solid var(--color-line);border-radius:15px;background:#fffdf8;color:#1f1f1f;padding:12px;font-weight:900}.inv-adjust-form .wide{grid-column:1/-1}.inv-supplier-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;margin-top:12px}.inv-supplier-card{border:1px solid var(--color-line);background:var(--color-panel-2);border-radius:20px;padding:14px}.inv-supplier-card h3{margin:0 0 10px;color:var(--color-brown-dark)}.inv-restock-row,.inv-alert-row{display:grid;grid-template-columns:48px 1fr auto;gap:10px;align-items:center;border:1px solid var(--color-line);background:#fffdf8;border-radius:15px;padding:9px;margin:7px 0}.inv-restock-row img,.inv-alert-row img{width:48px;height:48px;object-fit:cover;border-radius:13px;border:1px solid var(--color-line)}.inv-restock-row span,.inv-restock-row small,.inv-alert-row span,.inv-alert-row small{display:block;color:var(--color-muted);font-weight:850}.inv-restock-row strong{color:var(--color-primary-strong)}.inv-alert-list{display:grid;gap:6px}.btn.mini{padding:8px 10px;font-size:.82rem;border-radius:12px}@media(max-width:1250px){.inv-kpis{grid-template-columns:repeat(3,1fr)}.inv-layout{grid-template-columns:1fr}.inv-list-card,.inv-detail-card{min-height:auto}.inv-product-list{max-height:420px}.inv-detail-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.inv-kpis,.inv-detail-grid,.inv-adjust-form{grid-template-columns:1fr}.inv-product-head{grid-template-columns:1fr;text-align:center}.inv-product-head img{margin:auto}.inv-restock-row,.inv-alert-row{grid-template-columns:42px 1fr}.inv-restock-row strong,.inv-alert-row button{grid-column:1/-1}}


/* ===== Inventario PRO 2.1 Inteligente ===== */
.inv-smart-strip{display:flex;align-items:center;gap:12px;flex-wrap:wrap;border:1px dashed rgba(217,104,54,.32);background:#fff8f0;border-radius:16px;padding:10px 12px;margin:10px 0 14px;font-weight:850;color:#5a2f1d}.inv-smart-strip small{color:var(--color-muted);font-weight:800}.inv-smart-strip .inv-status{display:inline-flex;align-items:center;gap:6px}.inv-note{border:1px dashed rgba(217,104,54,.32);background:#fff8f0;border-radius:14px;padding:10px 12px;margin:8px 0 14px;color:#5a2f1d;font-weight:850}.inv-smart-grid{align-items:start}.inv-margin-row{display:grid;grid-template-columns:110px 1fr auto;gap:8px;align-items:center;border:1px solid var(--line);background:#fffdf8;border-radius:14px;padding:10px 12px;margin-bottom:8px}.inv-margin-row b{color:var(--primary)}.inv-margin-row span{font-weight:900}.inv-margin-row strong{color:#0f8a45;font-size:1.1rem}.inv-margin-row small{grid-column:2/4;color:var(--color-muted);font-weight:800}@media(max-width:760px){.inv-margin-row{grid-template-columns:1fr}.inv-margin-row small{grid-column:auto}}


/* ===== Web2 Mobile + Productos Imagen PRO 2.0 ===== */
.image-url-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center}
.image-url-row input{width:100%;border:1px solid var(--color-line);background:#fffdf8;border-radius:14px;padding:12px 13px;font-weight:850;color:#28140e}
.product-image-pro-preview{display:flex;align-items:center;gap:12px;border:1px dashed rgba(217,104,54,.35);background:rgba(255,248,240,.82);border-radius:16px;padding:12px}
.product-image-pro-preview img{width:78px;height:78px;object-fit:contain;border:1px solid var(--color-line);border-radius:16px;background:#fff}
.product-image-pro-preview div{display:grid;gap:4px}
.product-image-pro-preview b{color:var(--color-brown-dark)}
.product-image-pro-preview span{color:var(--color-muted);font-weight:850}
.product-image-mobile-tools input[type=file]{padding:14px;background:#fffdf8;border:1px dashed rgba(217,104,54,.35);border-radius:14px}

@media(max-width:1100px){
  body{overflow:auto}
  .nf-shell{height:auto;min-height:100vh;display:block}
  .nf-side{position:sticky;top:0;z-index:50;padding:10px 12px;display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;border-bottom:1px solid rgba(255,255,255,.12)}
  .brand{min-width:0}.brand-badge{width:44px;height:44px;border-radius:14px;font-size:23px}.brand h1{font-size:1.18rem}.brand p{font-size:.72rem}
  .nav{display:flex;gap:7px;overflow-x:auto;grid-column:1/-1;padding-bottom:4px;scrollbar-width:thin}
  .nav button{white-space:nowrap;padding:10px 12px;border-radius:14px;font-size:.9rem;min-width:max-content}
  .side-foot{display:none}
  .main{height:auto;min-height:calc(100vh - 106px);overflow:visible;padding:10px;gap:10px}
  #view{min-width:0}
  .topbar{align-items:flex-start;gap:8px}.topbar h2{font-size:1.45rem}.status-pills{gap:6px}.pill{padding:8px 10px;font-size:.83rem}
  .card{border-radius:18px;padding:12px}
  .btn{padding:11px 13px;border-radius:14px}
  .searchbox{gap:8px}.searchbox input{font-size:1rem;padding:13px 14px;border-radius:14px}
  .grid-pos,.products-v1-layout,.reports-pro-layout,.inventory-layout,.con-pro-layout,.wa-pro-layout,.printing-layout{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}
  .cart-panel,.products-panel,.product-editor-panel,.con-pro-list-card,.con-pro-editor-card{min-height:auto!important}
  .product-admin-head{display:none!important}
  .product-admin-list.v1{max-height:none!important;overflow:visible!important}
  .product-admin-row.v1{grid-template-columns:54px 1fr auto!important;gap:10px!important}
  .product-admin-row.v1 > div:nth-child(3),
  .product-admin-row.v1 > div:nth-child(4),
  .product-admin-row.v1 > div:nth-child(6),
  .product-admin-row.v1 > div:nth-child(8){display:none!important}
  .product-admin-row.v1 .prod-main b{font-size:1rem}
  .product-editor-head{align-items:center}
  .product-editor-head h3{font-size:1.25rem;margin:0}
  .tabs{overflow-x:auto;display:flex;white-space:nowrap;padding-bottom:4px}
  .product-form-v1 .form-grid,.form-grid,.con-pro-form-grid,.con-form-two,.con-form-three{grid-template-columns:1fr!important}
  .editor-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}
  .editor-actions .btn.primary,.editor-actions .btn.danger{grid-column:1/-1}
  .image-url-row{grid-template-columns:1fr!important}
  .product-image-pro-preview{align-items:flex-start}
  .product-image-pro-preview img{width:64px;height:64px}
}

@media(max-width:620px){
  html{font-size:16px}
  .main{padding:8px}
  .topbar h2{font-size:1.25rem}
  .status-pills .pill:nth-child(n+3){display:none}
  .card-title{align-items:flex-start;gap:8px}.card-title h3{font-size:1.1rem}
  .product-admin-row.v1{grid-template-columns:48px 1fr!important;padding:10px!important}
  .product-admin-row.v1 .row-actions{display:none!important}
  .product-thumb,.product-thumb-wrap img{width:46px!important;height:46px!important}
  .product-thumb.big{width:70px!important;height:70px!important}
  .editor-actions{grid-template-columns:1fr!important}
  .product-image-pro-preview{display:grid;grid-template-columns:70px 1fr}
}


/* ===== Fase 3  -  Puente de integracion real ===== */
.integration-status-card{border:1px solid rgba(217,104,54,.24)}
.integration-status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}
.integration-row{display:grid;grid-template-columns:28px 170px 1fr;gap:8px;align-items:center;border:1px solid var(--color-line);background:var(--color-panel-2);border-radius:16px;padding:10px 12px}
.integration-row span{font-family:'Material Symbols Rounded';font-size:22px;color:var(--color-primary)}
.integration-row b{color:var(--color-brown-dark)}
.integration-row em{font-style:normal;color:var(--color-muted);font-weight:850;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.integration-row.warn{background:#fff7d6;border-color:#f4d06f}
.integration-row.warn span{color:#b7791f}
.integration-test-result{border:1px dashed rgba(217,104,54,.35);border-radius:16px;padding:12px;background:#fff8f0;color:#5a2f1d;font-weight:850;display:grid;gap:4px}
.integration-test-result.ok{border-style:solid;background:#ecfdf5;color:#065f46;border-color:#86efac}
.integration-test-result.bad{border-style:solid;background:#fff1f2;color:#991b1b;border-color:#fecaca}
.integration-test-result span{font-weight:800}
@media(max-width:900px){.integration-status-grid{grid-template-columns:1fr}.integration-row{grid-template-columns:28px 1fr}.integration-row em{grid-column:2/-1;white-space:normal}}

/* ===== Productos Importar / Exportar PRO v1 ===== */
.product-import-tools{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 10px}
.product-import-tools .btn{min-height:38px;padding:8px 11px;border-radius:13px;font-size:.88rem;display:inline-flex;align-items:center;gap:6px}
.product-import-tools .material-symbols-rounded{font-size:18px}
@media(max-width:760px){.product-import-tools{display:grid;grid-template-columns:1fr 1fr}.product-import-tools .btn{width:100%;justify-content:center}.product-import-tools .btn:nth-child(3){grid-column:1/-1}}

/* ===== Clientes PRO 2.0 + API Prep ===== */
.customers-toolbar{margin-bottom:14px;display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}.customers-toolbar .toolbar-left,.customers-toolbar .toolbar-right{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.customers-toolbar #customerImportReport{grid-column:1/-1;color:var(--color-muted);font-weight:850}.customers-pro-layout{align-items:start}.customer-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0}.customer-kpis div,.customer-credit-box{border:1px solid var(--line);background:var(--panel2);border-radius:16px;padding:10px}.customer-kpis span,.customer-stats span{display:block;color:var(--color-muted);font-size:.78rem;font-weight:900}.customer-kpis b,.customer-stats b{font-size:1rem;color:#4b2418}.customer-row{position:relative}.customer-debt{font-style:normal;border:1px solid #fecaca;background:#fee2e2;color:#991b1b;border-radius:999px;padding:4px 8px;font-weight:950}.customer-credit-box{margin:12px 0;background:#fff8f0}.customer-credit-box h3{margin:0 0 10px;color:#5a2f1d}.check-row{display:flex;gap:8px;align-items:center;font-weight:900;color:#5a2f1d;margin-bottom:10px}.import-label input{display:none}.fiscal-result.bad{border-color:#fecaca;background:#fee2e2;color:#991b1b}@media(max-width:900px){.customers-toolbar{grid-template-columns:1fr}.customer-kpis{grid-template-columns:1fr 1fr}}

/* ===== Venta cantidad manual + Caja cancelar pedido ===== */
.qty.qty-manual{border:1px solid var(--line);background:#fff7ef;color:#5a2f1d;border-radius:999px;padding:7px 12px;font-weight:950;cursor:pointer;min-width:58px;text-align:center}
.qty.qty-manual:hover{border-color:var(--primary);box-shadow:0 0 0 2px rgba(217,104,54,.10)}
.btn.danger{background:#fee2e2;color:#991b1b;border-color:#fecaca}
.btn.danger:hover{filter:brightness(.98)}


/* ===== Venta PRO: precios visibles + cantidad manual sin prompt ===== */
.price-sale-row .sale-price-pro{
  background:#fff0dc;
  border:1px solid #f3c28f;
  border-radius:14px;
  padding:8px 10px;
  min-width:136px;
  display:grid;
  gap:3px;
  box-shadow:0 4px 10px rgba(90,47,29,.05);
}
.price-sale-row .sale-price-pro span{
  color:#8a4b20;
  font-weight:950;
  font-size:.78rem;
}
.price-sale-row .sale-price-pro select{
  width:100%;
  border:0;
  background:transparent;
  color:#d9480f;
  font-weight:950;
  font-size:1rem;
  outline:0;
}
.cart-price-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#fff0dc;
  border:1px solid #f3c28f;
  color:#d9480f;
  border-radius:999px;
  padding:4px 9px;
  margin-left:4px;
  font-size:.95rem;
  font-weight:950;
}
.sale-qty-modal{
  width:min(520px, calc(100vw - 28px));
}
.sale-qty-product{
  border:1px solid var(--line);
  background:#fff8f0;
  border-radius:16px;
  padding:12px;
  display:grid;
  gap:4px;
  margin-bottom:10px;
}
.sale-qty-product b{ color:#4b2418; font-size:1.08rem; }
.sale-qty-product span{ color:#7a5a4a; font-weight:850; }
.sale-modal-field{
  display:grid;
  gap:6px;
  margin:10px 0;
}
.sale-modal-field span{
  font-weight:950;
  color:#5a2f1d;
}
.sale-modal-field input{
  width:100%;
  border:1px solid #f0c9ad;
  background:#fffdf8;
  border-radius:14px;
  padding:13px 14px;
  font-size:1.2rem;
  font-weight:950;
  color:#28140e;
}
.sale-qty-quick{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:12px 0;
}
.sale-qty-quick .btn{
  min-width:58px;
}
.modal-actions{
  display:flex;
  gap:10px;
  justify-content:flex-end;
  margin-top:12px;
}


/* ===== Venta PRO 2.1: Precio 1 verde visible ===== */
.price-sale-row .sale-price-pro.price-one{
  background:#ecfdf5 !important;
  border:1px solid #86efac !important;
  box-shadow:0 5px 14px rgba(22,101,52,.10);
}
.price-sale-row .sale-price-pro.price-one span{
  color:#166534 !important;
  font-size:.82rem !important;
  font-weight:950 !important;
}
.price-sale-row .sale-price-pro.price-one select{
  color:#087f3f !important;
  font-size:1.08rem !important;
  font-weight:950 !important;
}
.price-sale-row .sale-price-pro.price-two{
  background:#fff7ed !important;
  border-color:#fdba74 !important;
}
.price-sale-row .sale-price-pro.price-two select{
  color:#c2410c !important;
}
.price-sale-row .sale-price-pro.price-manual{
  background:#fef2f2 !important;
  border-color:#fecaca !important;
}
.price-sale-row .sale-price-pro.price-manual select{
  color:#991b1b !important;
}
.cart-price-pill.cart-price-price1{
  background:#ecfdf5 !important;
  border-color:#86efac !important;
  color:#087f3f !important;
  font-size:1.05rem !important;
}
.cart-price-pill.cart-price-price2{
  background:#fff7ed !important;
  border-color:#fdba74 !important;
  color:#c2410c !important;
}
.cart-price-pill.cart-price-manual{
  background:#fef2f2 !important;
  border-color:#fecaca !important;
  color:#991b1b !important;
}


/* ===== Caja PRO 2.0 Reimpresion + Historial ===== */
.cash-left-panel{display:flex;flex-direction:column;min-height:0}
.cash-history-title{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;margin:16px 0 8px;padding-top:12px;border-top:1px solid var(--color-line)}
.cash-history-title h3{margin:0;color:var(--color-brown-dark)}
.cash-history-title span{color:var(--color-muted);font-weight:800;font-size:.85rem}
.cash-history-list{display:grid;gap:8px;overflow:auto;max-height:260px;padding-right:4px}
.cash-hist-row{display:grid;grid-template-columns:1fr auto auto auto;gap:8px;align-items:center;border:1px solid var(--color-line);background:rgba(255,255,255,.55);border-radius:16px;padding:8px}
.cash-hist-row.active{border-color:var(--color-primary);box-shadow:0 0 0 2px rgba(217,104,54,.10)}
.cash-hist-row .hist-main{border:0;background:transparent;text-align:left;display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--color-text);cursor:pointer}
.cash-hist-row .hist-main b{display:block;color:var(--color-primary-strong)}
.cash-hist-row .hist-main span{display:block;color:var(--color-muted);font-weight:800;font-size:.82rem;margin-top:3px}
.cash-hist-row .hist-main strong{color:var(--color-brown-dark)}
.cash-status{border-radius:999px;padding:6px 9px;font-size:.76rem;font-weight:950;border:1px solid var(--color-line);white-space:nowrap}
.cash-status.paid{background:#dcfce7;color:#166534;border-color:#86efac}
.cash-status.cancelled{background:#fee2e2;color:#991b1b;border-color:#fecaca}
.cash-status.returned{background:#fff7d6;color:#8a5a00;border-color:#f4d06f}
.cash-status.cash{background:#dbeafe;color:#1e40af;border-color:#bfdbfe}
.cash-status.pending{background:#fff4e8;color:#7a3f28;border-color:#f0c9ad}
.btn.mini{padding:7px 9px;font-size:.78rem;border-radius:11px}
.cash-actions{grid-template-columns:1.2fr 1fr 1fr 1fr 1fr 1fr}
@media(max-width:1250px){.cash-actions{grid-template-columns:1fr 1fr}.cash-hist-row{grid-template-columns:1fr auto}.cash-status{justify-self:start}}
@media(max-width:720px){.cash-hist-row{grid-template-columns:1fr}.cash-hist-row .hist-main{display:grid}.cash-actions{grid-template-columns:1fr}}


/* ===== Clientes CRM PRO 2.1 ===== */
.crm-dashboard{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}
.crm-box{border:1px solid var(--line);background:linear-gradient(135deg,#fff8f0,#fffdf8);border-radius:16px;padding:10px;display:grid;gap:7px}
.crm-box strong{color:#5a2f1d;font-weight:950}
.crm-mini-row{border:1px solid rgba(217,104,54,.18);background:#fff;border-radius:12px;padding:7px 9px;display:grid;gap:2px}
.crm-mini-row b{font-size:.9rem;color:#3b2318}
.crm-mini-row span{font-size:.78rem;color:var(--color-muted);font-weight:850}
.customer-stats-pro{grid-template-columns:repeat(3,minmax(0,1fr))}
.customer-debt{background:#fee2e2;color:#991b1b;border:1px solid #fecaca;border-radius:999px;padding:4px 8px;font-style:normal;font-weight:950}
@media(max-width:900px){
  .crm-dashboard{grid-template-columns:1fr}
  .customer-stats-pro{grid-template-columns:1fr 1fr}
}

/* ===== Caja PRO 2.1 Cancelar/Devolver con motivo modal ===== */
.cash-reason-backdrop{position:fixed;inset:0;background:rgba(34,17,8,.42);z-index:9999;display:flex;align-items:center;justify-content:center;padding:18px;backdrop-filter:blur(4px)}
.cash-reason-modal{width:min(620px,96vw);background:#fffdf8;border:1px solid #f0c9ad;border-radius:24px;box-shadow:0 24px 80px rgba(90,47,29,.28);padding:18px;display:grid;gap:14px}
.cash-reason-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;border-bottom:1px solid rgba(217,104,54,.18);padding-bottom:12px}
.cash-reason-head h3{margin:0;color:#5a2f1d;font-size:1.35rem}
.cash-reason-head p{margin:4px 0 0;color:var(--color-muted);font-weight:850}
.cash-reason-presets{display:flex;gap:8px;flex-wrap:wrap}
.cash-reason-field{display:grid;gap:7px;color:#5a2f1d;font-weight:950}
.cash-reason-field textarea{width:100%;border:1px solid var(--line);background:#fff8f0;border-radius:16px;padding:12px 14px;font-weight:850;color:#2b160f;resize:vertical;min-height:92px}
.cash-reason-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
@media(max-width:620px){.cash-reason-modal{border-radius:18px;padding:14px}.cash-reason-actions .btn{width:100%}}

/* ===== Dashboard Operativo PRO 2.0 + Config permisos ===== */
.dashboard-pro{display:grid;gap:16px;min-height:0;overflow:auto;padding-bottom:12px}.dash-topbar p{margin:4px 0 0}.dash-kpis{display:grid;grid-template-columns:repeat(6,minmax(160px,1fr));gap:12px}.dash-kpi{background:var(--color-panel);border:1px solid var(--color-line);border-radius:20px;padding:14px;box-shadow:var(--shadow);display:flex;gap:12px;align-items:center;min-height:104px}.dash-kpi-icon{width:52px;height:52px;border-radius:17px;background:#fff2e8;color:var(--color-primary);display:grid;place-items:center;flex:0 0 52px}.dash-kpi-icon .material-symbols-rounded{font-size:30px}.dash-kpi span{display:block;color:var(--color-muted);font-weight:900;font-size:.82rem}.dash-kpi b{display:block;color:var(--color-brown-dark);font-size:1.45rem;margin-top:3px}.dash-kpi small{display:block;color:var(--color-muted);font-weight:800;margin-top:3px}.dash-kpi.green .dash-kpi-icon{background:#dcfce7;color:#166534}.dash-kpi.orange .dash-kpi-icon{background:#fff4e8;color:#9a4d13}.dash-kpi.blue .dash-kpi-icon{background:#dbeafe;color:#1e40af}.dash-kpi.red .dash-kpi-icon{background:#fee2e2;color:#991b1b}.dash-grid-main{display:grid;grid-template-columns:1.1fr .9fr;gap:14px}.dash-card{min-height:0}.dash-alerts,.dash-quicks,.dash-activity{display:grid;gap:10px}.dash-alert{border:1px solid var(--color-line);border-radius:16px;padding:12px;display:flex;align-items:center;gap:10px;background:#fff8f0;color:#5a2f1d}.dash-alert .material-symbols-rounded{font-size:24px}.dash-alert.ok{background:#dcfce7;color:#166534;border-color:#86efac}.dash-alert.warn{background:#fff7d6;color:#8a5a00;border-color:#f4d06f}.dash-alert.bad{background:#fee2e2;color:#991b1b;border-color:#fecaca}.dash-quicks{grid-template-columns:repeat(3,1fr)}.dash-quick{background:var(--color-panel-2);border:1px solid var(--color-line);border-radius:18px;padding:14px;color:var(--color-brown-dark);display:flex;align-items:center;gap:10px;font-weight:950;text-align:left}.dash-quick:hover{border-color:var(--color-primary);box-shadow:0 8px 20px rgba(217,104,54,.13);transform:translateY(-1px)}.dash-print-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.dash-print-grid div{background:#fff8f0;border:1px solid var(--color-line);border-radius:17px;padding:14px}.dash-print-grid span{display:block;color:var(--color-muted);font-weight:900}.dash-print-grid b{font-size:1.7rem;color:var(--color-primary-strong)}.dash-system{display:grid;grid-template-columns:1fr 1fr;gap:10px}.dash-system div{display:flex;justify-content:space-between;gap:10px;background:var(--color-panel-2);border:1px solid var(--color-line);border-radius:15px;padding:11px 12px}.dash-system b{color:var(--color-brown-dark)}.dash-system span{font-weight:950}.dash-system span.ok{color:#166534}.dash-system span.warn{color:#9a4d13}.dash-system span.bad{color:#991b1b}.dash-activity div{display:grid;grid-template-columns:36px 1fr;gap:4px 10px;align-items:center;background:var(--color-panel-2);border:1px solid var(--color-line);border-radius:16px;padding:11px}.dash-activity .material-symbols-rounded{grid-row:1/3;color:var(--color-primary);font-size:26px}.dash-activity b{color:var(--color-brown-dark)}.dash-activity small{color:var(--color-muted);font-weight:800}.perm-table{border:1px solid var(--color-line);border-radius:18px;overflow:hidden;background:#fffdf8}.perm-head,.perm-row{display:grid;grid-template-columns:minmax(190px,1fr) repeat(4,120px);align-items:center}.perm-head{background:#fff1e6;color:#5a2f1d;font-weight:950}.perm-head b,.perm-row span,.perm-row label{padding:10px 12px;border-bottom:1px solid var(--color-line)}.perm-row label{text-align:center}.perm-row:nth-child(odd){background:#fff8f0}.perm-row input{width:20px;height:20px;accent-color:var(--color-primary)}@media(max-width:1300px){.dash-kpis{grid-template-columns:repeat(3,1fr)}.dash-grid-main{grid-template-columns:1fr}.perm-head,.perm-row{grid-template-columns:minmax(180px,1fr) repeat(4,90px)}}@media(max-width:760px){.dash-kpis,.dash-quicks,.dash-print-grid,.dash-system{grid-template-columns:1fr}.perm-table{overflow:auto}.perm-head,.perm-row{min-width:650px}}

/* ===== Config PRO 2.1 - Scroll + Usuarios ===== */
.main:has(.settings-grid){overflow:hidden;}
.settings-grid{max-height:calc(100vh - 112px);overflow-y:auto;overflow-x:hidden;padding-right:8px;padding-bottom:24px;scrollbar-gutter:stable;}
.settings-grid .wide-card{grid-column:1 / -1;}
.users-card .card-title{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;}
.user-form{margin:12px 0;}
.user-form-grid{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:10px;}
.user-form-grid label{display:grid;gap:6px;font-weight:900;color:#5a2f1d;}
.user-form-grid input,.user-form-grid select{border:1px solid var(--color-line);background:#fffdf8;border-radius:14px;padding:12px 13px;font-weight:850;color:#28140e;}
.users-table-wrap{overflow:auto;border:1px solid var(--color-line);border-radius:18px;background:#fffdf8;margin-top:10px;}
.users-table{width:100%;border-collapse:collapse;min-width:760px;}
.users-table th{background:#fff1e6;color:#5a2f1d;text-align:left;font-size:.9rem;}
.users-table th,.users-table td{padding:11px 12px;border-bottom:1px solid var(--color-line);vertical-align:middle;}
.users-table td small{display:block;color:var(--color-muted);font-weight:800;margin-top:2px;}
.user-role-badge,.user-status{display:inline-flex;border-radius:999px;padding:6px 10px;font-weight:950;border:1px solid var(--color-line);background:#fff8f0;color:#5a2f1d;}
.user-status.ok{background:#dcfce7;color:#166534;border-color:#86efac;}
.user-status.bad{background:#fee2e2;color:#991b1b;border-color:#fecaca;}
.users-table .btn{padding:8px 10px;margin-right:6px;font-size:.84rem;}
@media(max-width:1050px){.settings-grid{max-height:none;overflow:visible;padding-right:0}.user-form-grid{grid-template-columns:1fr 1fr}.users-card .card-title{display:grid}.main:has(.settings-grid){overflow:visible}}
@media(max-width:680px){.user-form-grid{grid-template-columns:1fr}.users-table{min-width:680px}}


/* ===== Config PRO 2.2 - Acceso simple por modulos ===== */
.mod-access-table{border:1px solid var(--color-line);border-radius:18px;overflow:auto;background:#fffdf8;margin-top:12px;}
.mod-head,.mod-row{display:grid;grid-template-columns:minmax(190px,1fr) repeat(4,120px);align-items:center;min-width:720px;}
.mod-head{background:#fff1e6;color:#5a2f1d;font-weight:950;position:sticky;top:0;z-index:1;}
.mod-head b,.mod-row span,.mod-row label{padding:10px 12px;border-bottom:1px solid var(--color-line);}
.mod-row:nth-child(odd){background:#fff8f0;}
.mod-row span{font-weight:900;color:#4b2418;}
.mod-row label{text-align:center;}
.mod-row input{width:22px;height:22px;accent-color:var(--color-primary);}
@media(max-width:760px){.mod-access-table{max-width:100%;}.mod-head,.mod-row{grid-template-columns:minmax(170px,1fr) repeat(4,92px);min-width:560px;}}


/* ===== WhatsApp PRO 2.4 - Barra de chat ===== */
.wa-chat-composer{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:10px;
  align-items:center;
  margin-top:10px;
  padding:10px;
  border:1px solid var(--color-line);
  background:#fff8f0;
  border-radius:18px;
}
.wa-chat-composer input{
  width:100%;
  border:1px solid var(--color-line);
  background:#fffdf8;
  border-radius:14px;
  padding:13px 14px;
  font-weight:850;
  color:#3b2318;
  outline:none;
}
.wa-chat-composer input:focus{
  border-color:var(--color-primary);
  box-shadow:0 0 0 3px rgba(217,104,54,.13);
}
.wa-chat-composer .btn{
  white-space:nowrap;
  min-height:44px;
}
@media(max-width:760px){
  .wa-chat-composer{grid-template-columns:1fr;}
  .wa-chat-composer .btn{width:100%;justify-content:center;}
}

/* ===== Clientes PRO 2.2 - Busqueda mejor que Meta ===== */
.customer-search-pro{border:1px solid var(--color-line);background:linear-gradient(135deg,#fff8f0,#fffdf8);border-radius:20px;padding:12px;margin:10px 0 12px;box-shadow:0 8px 22px rgba(217,104,54,.08)}
.customer-search-main{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:10px;align-items:center;background:#fff;border:1px solid var(--color-line);border-radius:18px;padding:7px 8px 7px 12px}
.customer-search-main .material-symbols-rounded{color:var(--color-primary);font-size:25px}
.customer-search-main input{border:0!important;box-shadow:none!important;background:transparent!important;padding:12px 8px!important;font-size:1.08rem!important;font-weight:900;color:#2a160f;outline:none}
.customer-filter-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.customer-chip{border:1px solid var(--color-line);background:#fff;border-radius:999px;padding:8px 10px;display:flex;align-items:center;gap:7px;font-weight:950;color:#5a2f1d;cursor:pointer}.customer-chip b{background:#fff1e6;border:1px solid #f0c9ad;color:#9a4b28;border-radius:999px;min-width:24px;padding:2px 7px;text-align:center}.customer-chip.active{background:linear-gradient(135deg,var(--color-primary),var(--color-accent));color:#fff;border-color:transparent;box-shadow:0 8px 20px rgba(217,104,54,.18)}.customer-chip.active b{background:rgba(255,255,255,.22);border-color:rgba(255,255,255,.35);color:#fff}.customer-search-hint{margin-top:9px;color:#7a4a35;font-weight:850;font-size:.86rem}.customer-row{transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease}.customer-row:hover{transform:translateY(-1px)}@media(max-width:680px){.customer-search-main{grid-template-columns:34px 1fr}.customer-search-main .btn{grid-column:1/-1}.customer-filter-chips{gap:6px}.customer-chip{font-size:.82rem;padding:7px 9px}}


/* ===== WhatsApp PRO 2.4.1: busqueda de clientes/conversaciones ===== */
.wa-search-box{
  display:flex;
  align-items:center;
  gap:8px;
  background:#fffdf8;
  border:1px solid var(--color-line);
  border-radius:16px;
  padding:10px 12px;
  margin:10px 0 8px;
  box-shadow:0 6px 14px rgba(90,47,29,.06);
}
.wa-search-box .material-symbols-rounded{
  color:var(--color-primary-strong);
  font-size:22px;
}
.wa-search-box input{
  width:100%;
  border:0;
  outline:0;
  background:transparent;
  color:#28140e;
  font-weight:900;
  min-width:0;
}
.wa-search-box input::placeholder{color:#8b7568;font-weight:900}
.wa-empty-search{
  border:1px dashed rgba(217,104,54,.35);
  background:#fff8f0;
  border-radius:16px;
  padding:14px;
  color:#5a2f1d;
  font-weight:900;
  text-align:center;
}

/* ===== Venta PRO 2.2: precio claro tipo stock ===== */
.price-sale-row .sale-price-pro{
  min-width:150px !important;
  border-radius:16px !important;
  padding:8px 12px !important;
  display:grid !important;
  align-items:center;
  gap:2px !important;
}
.price-sale-row .sale-price-pro .sale-price-label,
.price-sale-row .sale-price-pro span{
  display:block;
  text-transform:uppercase;
  letter-spacing:.2px;
  font-size:.72rem !important;
  line-height:1;
}
.price-sale-row .sale-price-pro select{
  appearance:auto;
  -webkit-appearance:auto;
  cursor:pointer;
  font-size:1.05rem !important;
  line-height:1.1;
  min-height:28px;
}
.price-sale-row .sale-price-pro.price-one{
  background:#e8fff2 !important;
  border:2px solid #30d27a !important;
  box-shadow:0 0 0 3px rgba(48,210,122,.10), 0 6px 16px rgba(22,101,52,.10) !important;
}
.price-sale-row .sale-price-pro.price-one .sale-price-label,
.price-sale-row .sale-price-pro.price-one span{
  color:#04753a !important;
}
.price-sale-row .sale-price-pro.price-one select{
  color:#00833f !important;
  font-weight:1000 !important;
}
.price-sale-row .sale-price-pro.price-two{
  background:#fff5e8 !important;
  border:2px solid #ff9f43 !important;
  box-shadow:0 0 0 3px rgba(255,159,67,.10) !important;
}
.price-sale-row .sale-price-pro.price-two .sale-price-label,
.price-sale-row .sale-price-pro.price-two span{
  color:#b45309 !important;
}
.price-sale-row .sale-price-pro.price-two select{
  color:#c2410c !important;
  font-weight:1000 !important;
}
.price-sale-row .sale-price-pro.price-manual{
  background:#fff1f2 !important;
  border:2px solid #f87171 !important;
}
.price-sale-row .sale-price-pro.price-manual .sale-price-label,
.price-sale-row .sale-price-pro.price-manual span{
  color:#991b1b !important;
}
.price-sale-row .sale-price-pro.price-manual select{
  color:#991b1b !important;
  font-weight:1000 !important;
}


/* ===== Sistema PRO 1.0 ===== */
.sys-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:14px;align-items:start}
.sys-card.wide{grid-column:1/-1}
.sys-services{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.sys-service{display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:center;border:1px solid var(--line);background:var(--panel2);border-radius:18px;padding:12px}
.sys-service-ico{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:#fff3e8;color:var(--primary)}
.sys-service b{display:block;color:#4b2418}.sys-service small{display:block;color:var(--color-muted);font-weight:800;margin-top:2px}
.sys-badge{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:7px 10px;font-weight:950;font-size:.78rem}
.sys-badge .material-symbols-rounded{font-size:16px}.sys-badge.ok{background:#dcfce7;color:#166534}.sys-badge.warn{background:#fff3cd;color:#8a5a00}
.sys-queues{display:grid;gap:8px}.sys-queue-row{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--line);background:#fffdf8;border-radius:14px;padding:10px 12px}.sys-queue-row span{font-size:1.35rem;font-weight:950;color:var(--primary)}
.sys-server{display:grid;gap:8px}.sys-server div{border:1px solid var(--line);background:#fffdf8;border-radius:14px;padding:10px 12px;display:grid;gap:3px}.sys-server b{color:#5a2f1d}.sys-server span{color:var(--color-muted);font-weight:850;word-break:break-word}
.sys-logs,.sys-diag-box{display:grid;gap:8px;margin-top:10px}.sys-log,.sys-diag{border:1px solid var(--line);border-radius:14px;padding:10px 12px;background:#fffdf8;display:grid;gap:3px}.sys-log.ok,.sys-diag.ok{border-color:#86efac;background:#ecfdf5}.sys-log.warn,.sys-diag.warn{border-color:#f4d06f;background:#fff7d6}.sys-log b,.sys-diag b{color:#4b2418}.sys-log span,.sys-diag span{color:var(--color-muted);font-weight:800}
.module-grid.compact{grid-template-columns:1fr 1fr}
@media(max-width:1100px){.sys-grid{grid-template-columns:1fr}.sys-services{grid-template-columns:1fr}.module-grid.compact{grid-template-columns:1fr}}

/* NIDFRAN Productos final proveedor/categorias */
.product-form-v1 input,.product-form-v1 select,.product-form-v1 textarea,.searchbox input{border-radius:18px!important;}
.product-admin-row.v1,.product-editor-panel,.products-panel,.metric-card{border-radius:20px!important;}
.supplier-grid-final .supplier-select-row{display:grid;grid-template-columns:minmax(0,1fr) 48px;gap:10px;align-items:end;}
.supplier-grid-final .supplier-select-row label{margin:0;}
.btn-round-add{width:48px;height:48px;border-radius:999px!important;padding:0!important;font-size:24px;line-height:1;display:flex;align-items:center;justify-content:center;}
.product-form-v1 input[readonly]{font-weight:900;background:#fff3e8;color:#5b3729;}


/* ===== NIDFRAN VENTA FINAL: P1 rojo POS, P2 verde ===== */
.sale-info-bar .client-combo input,
.sale-info-bar .input-action input,
.sale-info-bar select,
.searchbox input{
  border-radius:18px !important;
}
.client-results.open{
  border-radius:18px !important;
  overflow:hidden;
  box-shadow:0 18px 38px rgba(80,34,20,.16);
}
.client-result-row{
  border-radius:14px !important;
}
.price-sale-row .sale-price-pro.price-one{
  background:#fff1f2 !important;
  border:2px solid #dc2626 !important;
  box-shadow:0 0 0 3px rgba(220,38,38,.10), 0 6px 16px rgba(127,29,29,.10) !important;
}
.price-sale-row .sale-price-pro.price-one .sale-price-label,
.price-sale-row .sale-price-pro.price-one span{
  color:#991b1b !important;
}
.price-sale-row .sale-price-pro.price-one select{
  color:#b91c1c !important;
  font-weight:1000 !important;
}
.price-sale-row .sale-price-pro.price-two{
  background:#ecfdf5 !important;
  border:2px solid #22c55e !important;
  box-shadow:0 0 0 3px rgba(34,197,94,.10), 0 6px 16px rgba(22,101,52,.10) !important;
}
.price-sale-row .sale-price-pro.price-two .sale-price-label,
.price-sale-row .sale-price-pro.price-two span{
  color:#166534 !important;
}
.price-sale-row .sale-price-pro.price-two select{
  color:#087f3f !important;
  font-weight:1000 !important;
}

/* ===== NIDFRAN PRODUCCION: Venta sin demo, P1 naranja natural POS, P2 verde ===== */
.price-sale-row .sale-price-pro.price-one{
  background:#fff7ef !important;
  border:2px solid var(--color-primary, #d96836) !important;
  box-shadow:0 0 0 3px rgba(217,104,54,.12), 0 6px 16px rgba(217,104,54,.12) !important;
}
.price-sale-row .sale-price-pro.price-one .sale-price-label,
.price-sale-row .sale-price-pro.price-one span{
  color:var(--color-primary-dark, #bf4d21) !important;
}
.price-sale-row .sale-price-pro.price-one select{
  color:var(--color-primary-dark, #bf4d21) !important;
  font-weight:1000 !important;
}
.price-sale-row .sale-price-pro.price-two{
  background:#ecfdf5 !important;
  border:2px solid #22c55e !important;
  box-shadow:0 0 0 3px rgba(34,197,94,.10), 0 6px 16px rgba(22,101,52,.10) !important;
}
.price-sale-row .sale-price-pro.price-two .sale-price-label,
.price-sale-row .sale-price-pro.price-two span{
  color:#166534 !important;
}
.price-sale-row .sale-price-pro.price-two select{
  color:#087f3f !important;
  font-weight:1000 !important;
}
.sale-info-bar .client-combo input{font-size:1.08rem;font-weight:950;}


/* NIDFRAN FINAL: busqueda de cliente visible en Venta + colores naturales */
.pro-sale-info{
  grid-template-columns: 1.45fr 1fr .95fr .85fr !important;
  align-items: stretch;
}
.sale-client-field{
  position: relative !important;
  border: 1px solid #efc7ad !important;
  border-radius: 20px !important;
  background: #fffaf5 !important;
}
.sale-client-field > span{
  font-size: .95rem;
  font-weight: 950;
  color: #5b2d23;
}
.sale-client-field small{
  color:#7a665d;
  font-weight:800;
}
.sale-client-field .client-combo{
  grid-template-columns: 1fr 48px !important;
}
.sale-client-field #saleCustomer2{
  border: 1px solid #efc7ad !important;
  background: #fff !important;
  border-radius: 16px !important;
  padding: 12px 14px !important;
  min-height: 46px !important;
  font-size: 1.18rem !important;
  font-weight: 950 !important;
  color: #2f160f !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.75);
}
.sale-client-field #btnAddCustomerFromSale2{
  border-radius: 16px !important;
  min-height: 46px !important;
  background: #fff5ee !important;
}
.client-results{
  z-index: 60 !important;
}
.client-result-row{
  cursor:pointer;
}
.price-sale-row .sale-price-pro.price-one{
  background:#fff3ea !important;
  border:1px solid #e7662a !important;
  box-shadow:0 5px 14px rgba(217,72,15,.12) !important;
}
.price-sale-row .sale-price-pro.price-one span,
.price-sale-row .sale-price-pro.price-one select{
  color:#d9480f !important;
}
.price-sale-row .sale-price-pro.price-two{
  background:#ecfdf5 !important;
  border:1px solid #86efac !important;
  box-shadow:0 5px 14px rgba(22,101,52,.10) !important;
}
.price-sale-row .sale-price-pro.price-two span,
.price-sale-row .sale-price-pro.price-two select{
  color:#087f3f !important;
}
.customer-editor-title{
  position: sticky;
  top: 0;
  z-index: 20;
  background: var(--color-panel);
  padding: 10px 0;
}
.customer-title-actions{
  display:flex;
  align-items:center;
  gap:10px;
}
.customer-title-actions .btn{
  min-height: 42px;
  border-radius: 16px;
  padding: 10px 18px;
}


/* NIDFRAN POS 2.0 API REAL FINAL OVERRIDES */
.price-sale-row .sale-price-pro.price-one,
.price-sale-row .sale-price-pro.price-one select,
.cart-price-pill.cart-price-price1{
  border-color:#d86b2a !important;
  background:linear-gradient(180deg,#fff7f1,#ffe4d2) !important;
  color:#9f3213 !important;
}
.price-sale-row .sale-price-pro.price-one .sale-price-label,
.price-sale-row .sale-price-pro.price-one span{ color:#b43d16 !important; }
.price-sale-row .sale-price-pro.price-two,
.price-sale-row .sale-price-pro.price-two select,
.cart-price-pill.cart-price-price2{
  border-color:#16a34a !important;
  background:linear-gradient(180deg,#f0fdf4,#dcfce7) !important;
  color:#166534 !important;
}
.sale-client-field{position:relative;min-width:320px;}
.client-results{display:none;position:absolute;z-index:50;top:100%;left:0;right:0;background:#fff;border:1px solid rgba(120,70,40,.18);box-shadow:0 14px 35px rgba(80,45,20,.16);border-radius:18px;padding:8px;margin-top:6px;max-height:280px;overflow:auto;}
.client-results.open{display:block;}
.client-result-row{width:100%;border:0;background:#fff;text-align:left;padding:10px 12px;border-radius:14px;display:block;cursor:pointer;color:var(--nf-brown,#4b2b18);}
.client-result-row:hover{background:#fff1e7;}
.client-result-row b{display:block;font-size:14px;}
.client-result-row span{display:block;font-size:12px;opacity:.75;margin-top:2px;}
.customer-editor-title{align-items:center;}
.customer-title-actions{display:flex;gap:8px;align-items:center;}
.customer-form input,.customer-form select,.customer-form textarea,.client-combo input{border-radius:18px!important;}


/* ===== Compras PRO  -  busqueda productos reales ===== */
.purchase-product-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;margin:8px 0 10px}
.purchase-product-search input{width:100%;border:1px solid var(--line);background:#fffdf8;border-radius:14px;padding:14px 16px;font-size:1.05rem;font-weight:900;color:#28140e}
.purchase-product-results{display:grid;gap:8px;margin:8px 0 12px}
.purchase-product-result{width:100%;border:1px solid var(--line);background:#fffdf8;border-radius:16px;padding:10px 12px;display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:center;text-align:left;cursor:pointer}
.purchase-product-result:hover{border-color:var(--primary);box-shadow:0 0 0 2px rgba(217,104,54,.10)}
.purchase-product-result img{width:48px;height:48px;object-fit:cover;border-radius:12px;border:1px solid var(--line);background:#fff}
.purchase-product-result b{display:block;color:#4b2418;font-weight:950}
.purchase-product-result span{display:block;color:var(--color-muted);font-weight:850;font-size:.85rem;margin-top:2px}
.purchase-product-result strong{font-size:1.6rem;color:#179b58}
@media(max-width:760px){.purchase-product-search{grid-template-columns:1fr}.purchase-product-result{grid-template-columns:42px 1fr}.purchase-product-result strong{grid-column:1/-1;text-align:center}}


/* ===== Impresion PRO 2.1 Print API ===== */
.print-api-bar{display:flex;align-items:center;gap:10px;justify-content:space-between;border:1px solid var(--line);background:#fff8f0;border-radius:16px;padding:10px 12px;margin:10px 0;color:#5a2f1d;font-weight:850;flex-wrap:wrap}
.print-api-bar span{color:var(--color-muted);font-weight:800}.mini-actions{display:flex;gap:8px;flex-wrap:wrap}.history-row small{opacity:1}

/* Caja Print API toast */
.cash-toast{position:fixed;right:22px;bottom:22px;z-index:99999;background:#fff8f0;color:#4b2418;border:1px solid #f0c9ad;border-radius:16px;padding:12px 16px;font-weight:900;box-shadow:0 18px 40px rgba(69,32,12,.18);max-width:420px}
.cash-toast.ok{background:#dcfce7;color:#166534;border-color:#86efac}
.cash-toast.warn{background:#fff7d6;color:#8a5a00;border-color:#f4d06f}

/* NIDFRAN FIX: preview/render imagenes de productos */
.product-thumb-wrap,
.product-thumb-wrap.big{
  overflow:hidden!important;
  flex:0 0 auto!important;
  background:#fff7ef!important;
  border-radius:12px!important;
}
.product-thumb,
.product-thumb-wrap img,
.print-product-row img,
.purchase-product-result img,
.doc-item img,
.inv-alert-row img{
  object-fit:cover!important;
  object-position:center!important;
  display:block!important;
  background:#fff7ef!important;
  color:transparent!important;
  text-indent:-9999px!important;
  overflow:hidden!important;
}
.product-admin-row.v1 .product-thumb,
.product-admin-row.v1 .product-thumb-wrap img{
  width:52px!important;
  height:52px!important;
  min-width:52px!important;
  min-height:52px!important;
  max-width:52px!important;
  max-height:52px!important;
  border-radius:12px!important;
}
.product-editor-head .product-thumb.big,
.product-editor-head .product-thumb-wrap.big img{
  width:76px!important;
  height:76px!important;
  min-width:76px!important;
  min-height:76px!important;
  max-width:76px!important;
  max-height:76px!important;
  border-radius:18px!important;
}
.store-card img{
  width:100%!important;
  height:140px!important;
  object-fit:cover!important;
  object-position:center!important;
}
.nf2-img-fallback{
  object-fit:contain!important;
  padding:5px!important;
}


/* ===== WhatsApp PRO 2.5 - Modo WhatsApp Web ===== */
body.whatsapp-web-mode .main{padding:10px;background:linear-gradient(180deg,#f8eadf 0%,#f3dfd0 100%)}
.wa-pro-layout{
  display:grid!important;
  grid-template-columns:360px minmax(520px,1fr) 330px!important;
  gap:0!important;
  height:calc(100vh - 92px)!important;
  border:1px solid var(--line);
  border-radius:22px;
  overflow:hidden;
  background:#fff8f0;
  box-shadow:0 10px 28px rgba(90,47,29,.10);
}
.wa-pro-layout .card{border:0!important;border-radius:0!important;box-shadow:none!important;background:#fff8f0!important;padding:0!important}
.wa-chat-list{border-right:1px solid var(--line)!important;display:flex;flex-direction:column;overflow:hidden!important;background:#fff6ed!important}
.wa-chat-list .card-title{padding:14px 14px 10px;border-bottom:1px solid var(--line);background:#fff4e8;margin:0!important;position:sticky;top:0;z-index:3}
.wa-chat-list .card-title h3:before{content:'WhatsApp Web';display:block;font-size:.78rem;color:#128c7e;font-weight:950;letter-spacing:.2px;margin-bottom:2px}
.wa-bot-rule{margin:10px 12px!important;border-radius:14px!important;background:#e7fff5!important;border-color:#8ee8c8!important;color:#0f6b59!important}
.wa-search-box{margin:0 12px 10px!important;background:#fff!important;border:1px solid var(--line)!important;border-radius:999px!important;padding:8px 12px!important;display:flex;align-items:center;gap:7px}
.wa-search-box input{border:0!important;background:transparent!important;outline:0!important;width:100%;font-weight:850;color:#3b2118}
.wa-filters{padding:0 12px 10px;margin:0!important;border-bottom:1px solid var(--line)}
#waConversations{overflow:auto;padding:10px 10px 14px;min-height:0;flex:1}
.wa-conv{border:0!important;border-bottom:1px solid rgba(90,47,29,.10)!important;border-radius:0!important;margin:0!important;background:transparent!important;padding:12px 10px!important;grid-template-columns:12px 1fr auto!important;transition:.15s ease}
.wa-conv:hover{background:#fff0e4!important}.wa-conv.active{outline:0!important;background:#ffe6d4!important;border-color:rgba(217,104,54,.22)!important}
.wa-conv b{font-size:14px;color:#3b2118}.wa-conv span,.wa-conv em{font-size:11px}.wa-conv strong{font-size:11px;background:#dcfce7;color:#166534;border-radius:999px;padding:5px 8px}
.wa-center{display:flex!important;flex-direction:column!important;overflow:hidden!important;background:#f8eadf!important;position:relative}
.wa-center>.card-title{height:64px;min-height:64px;padding:12px 16px!important;border-bottom:1px solid var(--line);background:#fff8f0;margin:0!important;position:relative;z-index:2}
.wa-center>.card-title h3{margin:0;font-size:1.15rem}.wa-center>.card-title h3:before{content:'Cliente';display:block;color:var(--color-muted);font-size:.72rem;font-weight:950;margin-bottom:2px}
#waThread{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:#efe1d5;background-image:radial-gradient(rgba(90,47,29,.05) 1px, transparent 1px);background-size:22px 22px}
.wa-thread{flex:1!important;max-height:none!important;overflow:auto!important;margin:0!important;padding:18px 26px 12px!important;border:0!important;border-radius:0!important;background:transparent!important;display:flex!important;flex-direction:column!important;gap:8px!important}
.wa-msg{max-width:min(68%,720px);border-radius:12px!important;padding:8px 10px 6px!important;box-shadow:0 1px 2px rgba(0,0,0,.08);position:relative}
.wa-msg.client{align-self:flex-start;background:#fff!important;border:0!important}.wa-msg.bot{align-self:flex-end;background:#dcf8c6!important;border:0!important}
.wa-msg b{font-size:.72rem;color:#128c7e}.wa-msg p{margin:3px 0 4px!important;line-height:1.25;font-size:.96rem}.wa-msg small{display:block;text-align:right;color:#667085;font-weight:800;font-size:.68rem}
.wa-chat-composer{display:grid!important;grid-template-columns:1fr auto auto;gap:8px;padding:10px 12px;border-top:1px solid var(--line);background:#fff8f0;margin:0!important;position:sticky;bottom:0;z-index:2}
.wa-chat-composer input{border-radius:999px!important;background:#fff!important;padding:13px 16px!important;border:1px solid var(--line)!important}
#waFiles{padding:12px 16px 8px;background:#fff8f0;border-top:1px solid var(--line)}
#waFiles h3{display:flex;align-items:center;gap:8px;margin:0 0 8px!important}#waFiles h3:before{content:'attach_file';font-family:'Material Symbols Rounded';font-size:20px;color:var(--primary)}
.wa-file-grid{display:flex!important;gap:8px;overflow-x:auto;padding-bottom:2px}.wa-file-card{min-width:210px!important;max-width:260px;border-radius:14px!important;background:#fff!important}
#waPreview{padding:10px 16px 16px;background:#fff8f0;max-height:260px;overflow:auto;border-top:1px solid rgba(90,47,29,.08)}
.wa-print-studio{display:grid!important;grid-template-columns:220px 1fr!important;gap:12px;align-items:start}.wa-preview-box{min-height:150px!important;border-radius:16px!important;background:#fff!important;border:1px dashed rgba(90,47,29,.22)!important}.wa-edit-actions,.wa-paper-panel,.wa-quick-recipes{grid-column:2}.wa-paper-panel{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:8px}.wa-paper-panel label{font-weight:950;color:#5a2f1d}.wa-paper-panel select,.wa-paper-panel input{width:100%;border-radius:13px;border:1px solid var(--line);background:#fff;padding:10px;font-weight:900}.wa-quick-recipes{display:flex;gap:8px;flex-wrap:wrap}
.wa-side-panel{border-left:1px solid var(--line)!important;overflow:auto!important;background:#fffaf5!important}.wa-side-panel>.card-title{padding:14px!important;background:#fff4e8;border-bottom:1px solid var(--line);margin:0!important}.wa-client-summary,.wa-stats,.wa-bot-panel,.wa-actions,.wa-folder-tree{margin:12px!important}.wa-client-summary{display:grid;gap:9px}.wa-client-summary div,.wa-stats div{background:#fff!important;border:1px solid var(--line)!important;border-radius:14px!important;padding:10px!important}.wa-stats{display:grid!important;grid-template-columns:repeat(3,1fr);gap:8px}.wa-actions{display:grid!important;grid-template-columns:1fr!important;gap:8px}.wa-bot-panel{display:grid!important;grid-template-columns:1fr 1fr;gap:8px;border:1px dashed #f0c9ad;border-radius:16px;background:#fff7ef;padding:10px}.wa-bot-panel>div{grid-column:1/-1}.wa-field{display:grid;gap:6px;margin:12px!important;font-weight:950}.wa-field select,.wa-field textarea{border:1px solid var(--line);background:#fff;border-radius:14px;padding:11px;font-weight:850}.wa-folder-tree{border:1px dashed rgba(90,47,29,.20);background:#fff;border-radius:16px;padding:12px;color:#5a2f1d}
@media(max-width:1250px){.wa-pro-layout{grid-template-columns:330px minmax(440px,1fr)!important}.wa-side-panel{display:none!important}.wa-print-studio{grid-template-columns:1fr!important}.wa-edit-actions,.wa-paper-panel,.wa-quick-recipes{grid-column:auto}.wa-paper-panel{grid-template-columns:1fr 1fr 1fr!important}}
@media(max-width:860px){.wa-pro-layout{grid-template-columns:1fr!important;height:auto!important;min-height:calc(100vh - 120px)!important}.wa-chat-list{max-height:330px}.wa-center{min-height:620px}.wa-msg{max-width:86%}.wa-chat-composer{grid-template-columns:1fr}.wa-paper-panel{grid-template-columns:1fr!important}}


/* NIDFRAN SIDEBAR SCROLL + LOGOUT FIX */
.nf-side{height:100vh;min-height:0;overflow:hidden}
.nf-side .nav{min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:4px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.35) transparent}
.nf-side .nav::-webkit-scrollbar{width:7px}.nf-side .nav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.32);border-radius:999px}
.side-session{margin-top:auto;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.14);border-radius:18px;padding:10px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;color:#fff}
.side-session b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.9rem}.side-session small{display:block;color:#ffd8bd;font-weight:850;margin-top:2px}
.logout-btn{background:#fff1e8;color:#5c3327;border:1px solid rgba(255,255,255,.22);border-radius:14px;padding:9px 10px;font-weight:1000;display:flex;gap:6px;align-items:center;justify-content:center;min-width:92px}.logout-btn:hover{background:linear-gradient(135deg,var(--color-primary),var(--color-accent));color:#fff}
.logout-btn .material-symbols-rounded{font-size:20px}
@media(max-height:820px) and (min-width:1101px){.nf-side{gap:10px;padding:14px}.brand-badge{width:46px;height:46px;font-size:24px;border-radius:14px}.brand h1{font-size:1.2rem}.brand p{font-size:.72rem}.nav{gap:6px}.nav button{padding:10px 12px;border-radius:14px;font-size:.88rem}.side-foot{font-size:.72rem;padding:10px}.side-session{padding:8px}}
@media(max-width:1100px){.nf-side{height:auto;overflow:visible}.nf-side .nav{overflow-x:auto;overflow-y:hidden}.side-session{grid-column:1/-1;display:flex;justify-content:space-between}.logout-btn{min-width:110px}.side-foot{display:none!important}}



/* NIDFRAN 2.0 SCROLL/MOBILE FIX */
body{overflow:hidden;}
.nf-shell{height:100dvh;min-height:0;}
.nf-side{height:100dvh;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;}
.nf-side .nav{min-height:0;}
.side-session,.side-foot{flex-shrink:0;}
.main{height:100dvh;min-height:0;overflow-y:auto!important;overflow-x:hidden;-webkit-overflow-scrolling:touch;}
#view{min-height:0;padding-bottom:24px;}
.card,.panel,.module-card,.section-card,.table-wrap,.list-panel{min-height:0;}
@media (max-width: 900px){
  body{overflow:auto;}
  .nf-shell{display:block;height:auto;min-height:100dvh;}
  .nf-side{position:sticky;top:0;z-index:20;width:100%;height:auto;max-height:42dvh;overflow-y:auto;border-radius:0;padding:12px;}
  .nf-side .brand{margin-bottom:8px;}
  .nf-side .nav{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;padding-bottom:4px;}
  .nf-side .nav button{white-space:nowrap;flex:0 0 auto;padding:11px 13px;border-radius:14px;}
  .side-session{margin-top:8px;}
  .side-foot{display:none;}
  .main{height:auto;min-height:58dvh;overflow:visible!important;padding:10px;}
  .grid-pos,.grid-2,.settings-grid,.products-grid,.cash-grid,.reports-grid,.inventory-grid,.customers-grid{display:block!important;}
  .card{margin-bottom:12px;}
}

/* =========================================================
   NIDFRAN POS 2.0 - MOBILE PRO POLISH v1
   Prioridad: Venta, Caja, Clientes, Cuadre, Productos e Inventario
   ========================================================= */
@media (max-width: 760px){
  html{font-size:16px;}
  body{overflow:auto;min-width:0;}
  .nf-shell{display:block;width:100%;min-height:100vh;overflow-x:hidden;}
  .nf-side{
    position:sticky;top:0;z-index:50;width:100%;max-width:100%;
    padding:14px 16px 16px;gap:14px;border-bottom:1px solid rgba(255,255,255,.12);
    box-shadow:0 10px 30px rgba(40,20,15,.18);
  }
  .brand{gap:12px;}
  .brand-badge{width:60px;height:60px;border-radius:18px;font-size:28px;flex:0 0 auto;}
  .brand h1{font-size:1.42rem;}
  .brand p{font-size:.92rem;}
  .nav{
    display:flex!important;gap:10px;overflow-x:auto;overflow-y:hidden;
    padding:4px 0 10px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
  }
  .nav button{
    min-width:max-content;flex:0 0 auto;scroll-snap-align:start;
    padding:14px 16px;border-radius:17px;font-size:1rem;gap:8px;white-space:nowrap;
  }
  .nav button span.material-symbols-rounded{font-size:1.45rem;}
  .side-session{display:flex!important;align-items:center;justify-content:space-between;gap:10px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.18);border-radius:18px;padding:10px 12px;color:#fff;}
  .side-session b{display:block;max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .side-session small{display:block;font-weight:900;color:#ffd8bd;margin-top:3px;}
  .logout-btn{min-height:46px;border-radius:16px;background:#fffaf3;color:var(--color-brown-dark);font-weight:950;padding:10px 14px;display:flex;align-items:center;gap:8px;}
  .side-foot{display:none;}
  .main{display:block;width:100%;padding:14px 12px 92px;height:auto;min-height:100vh;overflow:visible;}
  .topbar{gap:9px;margin-bottom:10px;}
  .topbar h2{font-size:1.65rem;line-height:1.1;}
  .status-pills{gap:8px;overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px;max-width:100%;}
  .pill{white-space:nowrap;padding:9px 12px;font-size:.92rem;}
  .card{border-radius:20px;padding:14px;margin-bottom:12px;box-shadow:0 9px 24px rgba(91,45,35,.10);}
  .card-title{gap:10px;align-items:flex-start;flex-wrap:wrap;}
  .card-title h3{font-size:1.25rem;}
  .btn{min-height:48px;border-radius:15px;padding:12px 14px;font-size:1rem;}
  input,select,textarea{max-width:100%;}
  .searchbox{grid-template-columns:1fr!important;display:grid!important;gap:10px;width:100%;}
  .searchbox input{font-size:1.08rem;padding:15px 16px;border-radius:16px;}

  /* Venta rapida movil */
  .universal-search-bar{display:grid!important;grid-template-columns:1fr!important;gap:10px;padding:12px;border-radius:18px;margin-bottom:12px;}
  .universal-search-bar input{font-size:1.05rem;padding:15px 16px;}
  .universal-search-bar .btn{width:100%;}
  .grid-pos{display:block!important;width:100%;min-width:0;}
  .grid-pos > .card{width:100%;min-width:0;}
  .product-list{max-height:none!important;overflow:visible!important;display:grid;gap:10px;padding-right:0;}
  .product-row,
  .product-row.with-image{
    display:grid!important;grid-template-columns:58px 1fr 74px!important;
    gap:10px!important;align-items:center;padding:12px!important;border-radius:18px;
  }
  .product-row .product-thumb-wrap{width:58px!important;height:58px!important;grid-row:1 / span 2;}
  .product-row .product-thumb{width:58px!important;height:58px!important;object-fit:cover;border-radius:14px;}
  .product-row .code{display:block!important;grid-column:1 / -1;font-size:1.05rem;margin-left:68px;margin-top:-6px;}
  .product-row .product-info{min-width:0;grid-column:2;}
  .product-row .pname{font-size:1.08rem;line-height:1.18;white-space:normal;}
  .product-row .muted{font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .product-row .sale-price-select{grid-column:2 / 3;min-width:0;width:100%;padding:8px 9px;border-radius:14px;}
  .product-row .sale-price-select select{width:100%;font-size:.95rem;}
  .product-row .metric{display:block!important;grid-column:3;grid-row:1;background:rgba(240,164,95,.18);min-width:66px;padding:8px 6px;}
  .product-row .metric b{font-size:1rem;}
  .product-row .plus{grid-column:3;grid-row:2;width:54px;height:54px;justify-self:end;font-size:1.6rem;}
  .cart{min-height:auto!important;overflow:visible!important;}
  .cart-items{max-height:none!important;min-height:80px;}
  .cart-line{grid-template-columns:1fr;gap:10px;}
  .cart-controls{justify-content:space-between;}
  .qty-btn{width:46px;height:46px;}
  .grand{font-size:2rem;}
  .actions,.pos-actions{display:grid!important;grid-template-columns:1fr!important;gap:10px;}
  .actions .btn,.pos-actions .btn{width:100%;}

  /* Caja movil */
  .cash-layout{display:block!important;width:100%;}
  .cash-list-card,.cash-detail,.cash-panel{width:100%;min-width:0;}
  .cash-list,.cash-paid-list{max-height:none!important;overflow:visible!important;display:grid;gap:10px;}
  .cash-order-row,.paid-order-row{display:grid!important;grid-template-columns:1fr auto!important;gap:8px;align-items:center;border-radius:18px;padding:14px;}
  .cash-order-row b,.paid-order-row b{font-size:1.1rem;}
  .cash-detail-grid,.payment-grid,.cash-fields{grid-template-columns:1fr!important;}
  .cash-actions,.cash-button-row{grid-template-columns:1fr!important;display:grid!important;gap:10px;}

  /* Clientes movil */
  .customers-layout,.customers-pro-layout{display:block!important;width:100%;}
  .customers-toolbar{display:grid!important;grid-template-columns:1fr!important;gap:10px;}
  .toolbar-left,.toolbar-right{display:grid!important;grid-template-columns:1fr!important;gap:10px;width:100%;}
  .customer-search-main{display:grid!important;grid-template-columns:1fr!important;gap:10px;padding:12px;}
  .customer-search-main .material-symbols-rounded{display:none;}
  .customer-search-main input{width:100%;font-size:1.05rem;padding:14px;}
  .customer-filter-chips{display:flex;overflow-x:auto;gap:8px;flex-wrap:nowrap;padding-bottom:6px;}
  .customer-filter-chips button,.customer-filter-chips .chip{white-space:nowrap;flex:0 0 auto;}
  .customer-kpis{grid-template-columns:repeat(2,1fr)!important;gap:10px;}
  .customer-list{max-height:none!important;overflow:visible!important;}
  .customer-row{grid-template-columns:1fr!important;gap:8px;}
  .customer-form,.customer-form-pro{grid-template-columns:1fr!important;}

  /* Cuadre movil */
  .cashclose-grid,.cashclose-layout,.close-layout{display:block!important;width:100%;}
  .cashclose-summary,.cashclose-cards{display:grid!important;grid-template-columns:1fr!important;gap:12px;}
  .cash-denoms,.denom-grid{display:grid!important;grid-template-columns:1fr!important;gap:8px;}
  .denom-row{display:grid!important;grid-template-columns:78px 1fr 94px!important;gap:8px;align-items:center;}
  .denom-row input{min-width:0;}

  /* Productos movil */
  .products-v1-layout{display:block!important;width:100%;}
  .products-panel,.product-editor-panel{width:100%;min-width:0;}
  .product-import-tools{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px;}
  .product-import-tools .btn{width:100%;}
  .product-admin-head{display:none!important;}
  .product-admin-list.v1{max-height:none!important;overflow:visible!important;display:grid;gap:10px;}
  .product-admin-row.v1{
    display:grid!important;grid-template-columns:64px 1fr auto!important;
    gap:10px!important;align-items:center;padding:12px!important;border-radius:18px;
  }
  .product-admin-row.v1 .product-thumb-wrap{width:64px!important;height:64px!important;grid-row:1 / span 2;}
  .product-admin-row.v1 .product-thumb{width:64px!important;height:64px!important;object-fit:cover;border-radius:14px;}
  .product-admin-row.v1 > div{min-width:0;}
  .product-admin-row.v1 > div:nth-child(2){grid-column:2 / 3;}
  .product-admin-row.v1 > div:nth-child(3){display:block!important;grid-column:2 / 3;font-size:.86rem;color:var(--color-muted);}
  .product-admin-row.v1 > div:nth-child(4),
  .product-admin-row.v1 > div:nth-child(5),
  .product-admin-row.v1 > div:nth-child(6),
  .product-admin-row.v1 > div:nth-child(7),
  .product-admin-row.v1 > div:nth-child(8){display:inline-block!important;grid-column:auto;font-size:.85rem;}
  .product-admin-row.v1 > div:nth-child(4)::before{content:'Costo ';font-weight:950;color:var(--color-muted);}
  .product-admin-row.v1 > div:nth-child(5)::before{content:'P1 ';font-weight:950;color:var(--color-muted);}
  .product-admin-row.v1 > div:nth-child(6)::before{content:'P2 ';font-weight:950;color:var(--color-muted);}
  .product-admin-row.v1 > div:nth-child(7)::before{content:'Stock ';font-weight:950;color:var(--color-muted);}
  .product-admin-row.v1 > div:nth-child(8)::before{content:'Tienda ';font-weight:950;color:var(--color-muted);}
  .product-admin-row.v1 > div:nth-child(9){grid-column:3;grid-row:1 / span 2;align-self:center;}
  .product-admin-row.v1 div b,.product-admin-row.v1 div span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .product-editor-head{align-items:flex-start;}
  .tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:6px;}
  .tab-btn{white-space:nowrap;flex:0 0 auto;}
  .form-grid{display:grid!important;grid-template-columns:1fr!important;gap:12px;}
  .form-grid .wide{grid-column:auto!important;}
  .editor-actions{display:grid!important;grid-template-columns:1fr!important;gap:10px;}
  .image-url-row{display:grid!important;grid-template-columns:1fr!important;gap:10px;}

  /* Inventario y reportes movil */
  .module-grid,.report-grid{grid-template-columns:1fr!important;overflow:visible!important;}
  .inventory-tabs,.tabs-row,.module-tabs{display:flex!important;overflow-x:auto;gap:10px;flex-wrap:nowrap;padding-bottom:8px;}
  .inventory-tabs .btn,.tabs-row .btn,.module-tabs .btn{white-space:nowrap;flex:0 0 auto;}
  table{display:block;max-width:100%;overflow-x:auto;white-space:nowrap;}
}

@media (max-width: 430px){
  .main{padding-left:10px;padding-right:10px;}
  .nav button{padding:13px 14px;font-size:.96rem;}
  .brand-badge{width:54px;height:54px;}
  .product-import-tools{grid-template-columns:1fr!important;}
  .customer-kpis{grid-template-columns:1fr!important;}
  .product-row,.product-row.with-image{grid-template-columns:54px 1fr 62px!important;}
  .product-row .product-thumb-wrap,.product-row .product-thumb{width:54px!important;height:54px!important;}
  .product-row .plus{width:50px;height:50px;}
}

/* =========================================================
   NIDFRAN POS 2.0 - MOBILE COMPACT DRAWER FINAL
   Header: menu left, logo center, Salir right. Drawer only modules.
   ========================================================= */
.mobile-topbar,.mobile-drawer-overlay,.side-user-card{display:none;}
@media (max-width:760px){
  body{overflow:auto!important;background:linear-gradient(135deg,var(--color-bg),var(--color-bg-soft));}
  .nf-shell{display:block!important;min-height:100dvh!important;height:auto!important;overflow-x:hidden;}
  .mobile-topbar{
    display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:10px;
    position:sticky;top:0;z-index:1000;padding:12px 12px 10px;
    background:linear-gradient(135deg,#6c3325,#3f1d17);box-shadow:0 10px 26px rgba(44,18,12,.22);
  }
  .mobile-menu-btn{
    width:48px;height:48px;border-radius:15px;background:rgba(255,255,255,.10);border:1px solid rgba(255,255,255,.14);
    color:#fff;display:grid;place-items:center;font-weight:1000;
  }
  .mobile-menu-btn .material-symbols-rounded{font-size:30px;vertical-align:0;}
  .mobile-menu-btn span:last-child{display:none;}
  .mobile-brand{display:flex;align-items:center;gap:10px;min-width:0;color:#fff;}
  .mobile-brand .brand-badge{width:48px;height:48px;border-radius:15px;font-size:25px;flex:0 0 auto;}
  .mobile-brand h1{font-size:1.22rem;line-height:1;margin:0;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .mobile-brand p{font-size:.78rem;margin:3px 0 0;color:#ffd9c6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .mobile-logout{display:flex!important;min-width:88px;min-height:46px;border-radius:15px;background:#fff4ed;color:#6c3325;border:1px solid rgba(255,255,255,.35);font-weight:1000;box-shadow:none;}
  .mobile-logout .material-symbols-rounded{font-size:22px;}
  .mobile-drawer-overlay{display:none;position:fixed;inset:0;background:rgba(30,14,9,.45);z-index:998;backdrop-filter:blur(1.5px);}
  .nf-shell.drawer-open .mobile-drawer-overlay{display:block;}
  .nf-side{
    position:fixed!important;left:0;top:0;bottom:0;z-index:999;width:min(82vw,360px)!important;max-width:360px!important;height:100dvh!important;max-height:none!important;
    padding:18px 14px!important;border-radius:0 24px 24px 0!important;overflow-y:auto!important;overflow-x:hidden!important;
    background:linear-gradient(160deg,#6c3325,#3a1a14)!important;box-shadow:18px 0 42px rgba(0,0,0,.30)!important;
    transform:translateX(-105%);transition:transform .20s ease;
  }
  .nf-shell.drawer-open .nf-side{transform:translateX(0);}
  .nf-side .brand{display:flex!important;margin:0 0 14px!important;gap:10px;align-items:center;}
  .nf-side .brand-badge{width:54px!important;height:54px!important;border-radius:16px!important;font-size:27px!important;}
  .nf-side .brand h1{font-size:1.22rem!important;line-height:1!important;margin:0!important;color:#fff!important;}
  .nf-side .brand p{font-size:.78rem!important;margin:4px 0 0!important;color:#ffd9c6!important;}
  .side-user-card{display:flex;align-items:center;gap:10px;margin:0 0 14px;padding:12px;border-radius:18px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.12);color:#fff;}
  .side-user-card .avatar-mini{width:42px;height:42px;border-radius:999px;background:linear-gradient(135deg,var(--color-primary),var(--color-accent));display:grid;place-items:center;font-weight:1000;font-size:1.18rem;flex:0 0 auto;}
  .side-user-card b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px;}
  .side-user-card small{display:block;margin-top:2px;color:#ffb77d;font-weight:1000;}
  .nf-side .nav{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;overflow:visible!important;padding:0 0 14px!important;scroll-snap-type:none!important;}
  .nf-side .nav button{width:100%!important;min-width:0!important;display:flex!important;justify-content:flex-start!important;gap:12px!important;padding:14px 14px!important;border-radius:15px!important;background:rgba(255,255,255,.075)!important;color:#fff!important;font-size:1.02rem!important;}
  .nf-side .nav button.active{background:linear-gradient(135deg,var(--color-primary),var(--color-accent))!important;box-shadow:0 10px 22px rgba(217,104,54,.22)!important;}
  .nf-side .nav button::after{content:'>';margin-left:auto;font-size:1.6rem;line-height:1;color:rgba(255,255,255,.85);}
  .nf-side .nav .material-symbols-rounded{font-size:24px!important;}
  .nf-side .side-session{display:none!important;}
  .nf-side .side-foot{display:none!important;}
  .main{padding:14px 12px 92px!important;height:auto!important;min-height:calc(100dvh - 70px)!important;overflow:visible!important;}
  #view{padding-bottom:20px!important;}
}


/* =========================================================
   NIDFRAN POS 2.0 - MOBILE FINAL FIX: drawer below header + usable modules
   ========================================================= */
@media (max-width:760px){
  .mobile-topbar{
    position:sticky!important;
    top:0!important;
    z-index:1200!important;
    min-height:72px!important;
  }
  .nf-side{
    top:72px!important;
    height:calc(100dvh - 72px)!important;
    width:min(82vw,360px)!important;
    padding-top:12px!important;
  }
  .nf-side .brand{display:none!important;}
  .nf-side .side-user-card{display:none!important;}
  .nf-shell.drawer-open .mobile-drawer-overlay{
    top:72px!important;
    height:calc(100dvh - 72px)!important;
  }
  .main{
    padding-top:14px!important;
    width:100%!important;
    max-width:100vw!important;
    overflow-x:hidden!important;
  }
  .topbar{gap:10px!important;}
  .topbar,.card,.panel,.quote-layout,.grid-pos,.product-admin-layout,.customer-layout,.cash-layout,.inventory-layout{
    max-width:100%!important;
    overflow-x:hidden!important;
  }
  input,select,textarea,button{max-width:100%!important;}
  .searchbox input,.search-input,input[type="search"]{min-width:0!important;width:100%!important;}
}

/* Mobile module scroll polish */
@media (max-width:760px){
  #view,.module-scroll,.card-scroll,.product-list,.customer-list,.quote-list,.cash-list,.inventory-list{
    -webkit-overflow-scrolling:touch;
  }
  .quote-layout,.quotes-layout,.quotes-pro-layout{
    display:block!important;
  }
  .quote-list,.quotes-list,.quotes-pro-list,.doc-list{
    max-height:38dvh!important;
    overflow:auto!important;
    margin-bottom:12px!important;
  }
  .quote-editor,.quotes-editor,.doc-editor{
    max-height:none!important;
    overflow:visible!important;
  }
  .product-admin-layout{
    display:block!important;
  }
  .product-admin-list,.product-list-admin{
    max-height:none!important;
    overflow:visible!important;
  }
}

/* WhatsApp local bot/doc send polish */
.wa-msg.employee{align-self:flex-end;background:#fff2d6;border:1px solid rgba(160,90,20,.18)}
.wa-chat-composer{gap:6px;flex-wrap:wrap}
.wa-chat-composer input[type="text"]{min-width:220px;flex:1 1 260px}
@media(max-width:760px){.wa-chat-composer .btn{padding:9px 10px;font-size:12px}.wa-chat-composer input[type="text"]{flex-basis:100%}}

/* WhatsApp Campanas POS 2.0 */
.wa-campaign-layout{display:grid;grid-template-columns:minmax(320px,1.1fr) minmax(280px,.9fr);gap:14px;align-items:start;min-height:0;}
.wa-campaign-layout .card{min-width:0;}
.wa-campaign-editor label{display:block;margin:9px 0;font-weight:700;color:#5b3324;}
.wa-campaign-editor input,.wa-campaign-editor select,.wa-campaign-editor textarea{width:100%;box-sizing:border-box;margin-top:5px;border:1px solid rgba(90,50,35,.18);border-radius:12px;padding:10px;background:#fffaf4;font:inherit;}
.wa-campaign-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;}
.wa-template-card{width:100%;text-align:left;border:1px solid rgba(90,50,35,.14);background:#fffaf4;border-radius:14px;padding:10px;margin-bottom:8px;cursor:pointer;}
.wa-template-card b{display:block;color:#4b2a1f;font-size:14px;}
.wa-template-card span{display:inline-block;margin:5px 0;color:#b05d2d;font-weight:800;font-size:12px;text-transform:uppercase;}
.wa-template-card p{white-space:pre-wrap;margin:2px 0 0;color:#604235;font-size:13px;line-height:1.35;}
.wa-phone-preview{border-radius:18px;background:linear-gradient(180deg,#e6f3e6,#fff);border:1px solid rgba(35,90,40,.16);padding:16px;min-height:160px;}
.wa-phone-preview b{display:block;margin-bottom:12px;color:#174a2a;}
.wa-phone-preview p{background:#dcf8c6;border-radius:13px 13px 3px 13px;padding:11px 12px;margin:0;white-space:pre-wrap;color:#16351f;line-height:1.42;}
.wa-campaign-history{grid-column:1/-1;}
@media(max-width:900px){.wa-campaign-layout{grid-template-columns:1fr}.wa-campaign-history{grid-column:auto}}


/* WhatsApp Campanas PRO 2.1 */
.wa-campaign-pro .btn.small{padding:6px 10px;font-size:12px}
.wa-campaign-pro .mini{gap:10px}
.wa-campaign-pro textarea{resize:vertical}
.wa-template-card{display:block;width:100%;text-align:left;border:1px solid rgba(120,70,30,.18);background:#fff7ee;border-radius:12px;padding:10px;margin:8px 0;cursor:pointer}
.wa-template-card b{display:block;color:#5a2d17}.wa-template-card span{font-size:12px;opacity:.72}.wa-template-card p{font-size:12px;margin:5px 0 0;line-height:1.25}
.wa-phone-preview{background:#e9f6e7;border-radius:16px;padding:14px;min-height:150px;white-space:pre-wrap;line-height:1.35;border:1px solid rgba(0,0,0,.08)}
@media(max-width:900px){.wa-campaign-layout{display:block}.wa-campaign-layout .card{margin-bottom:12px}}

/* NIDFRAN WHATSAPP FASE 4.1 - NOTIFICACIONES Y SONIDOS */
.wa-floating-notice{
  position:fixed; right:18px; bottom:18px; z-index:9999;
  width:min(360px, calc(100vw - 28px));
  background:#fff7ed; border:1px solid rgba(120,53,15,.18);
  box-shadow:0 18px 50px rgba(0,0,0,.22); border-radius:18px;
  padding:14px; display:none; color:#3b2416;
}
.wa-floating-notice.show{display:block; animation:waPop .18s ease-out}
.wa-floating-notice b{display:block; font-size:15px; margin-bottom:4px}
.wa-floating-notice span{display:block; font-size:13px; line-height:1.35; opacity:.9; margin-bottom:10px}
.wa-floating-notice div{display:flex; gap:8px; justify-content:flex-end}
.wa-floating-notice button{border:0; border-radius:999px; padding:8px 12px; cursor:pointer; font-weight:800}
.wa-floating-notice button:first-child{background:#16a34a; color:white}
.wa-floating-notice button:last-child{background:#ead7c2; color:#3b2416}
@keyframes waPop{from{transform:translateY(10px); opacity:.2}to{transform:translateY(0); opacity:1}}
.wa-notify-modal{position:fixed; inset:0; background:rgba(0,0,0,.35); z-index:9998; display:flex; align-items:center; justify-content:center; padding:18px}
.wa-notify-box{width:min(520px, 100%); background:#fffaf3; border-radius:22px; padding:18px; box-shadow:0 24px 70px rgba(0,0,0,.32); color:#3b2416}
.wa-notify-box label{display:flex; justify-content:space-between; align-items:center; gap:12px; padding:10px 0; border-bottom:1px solid rgba(120,53,15,.10); font-weight:800}
.wa-notify-box input[type="range"]{width:190px}
.wa-notify-actions{display:flex; gap:10px; justify-content:flex-end; margin-top:14px}
@media(max-width:720px){
  .wa-floating-notice{right:10px; bottom:10px; width:calc(100vw - 20px)}
  .wa-notify-box input[type="range"]{width:130px}
}

/* WHATSAPP FASE 6 - Centro de Produccion / Impresion inteligente */
.wa-empty-files{
  display:flex; flex-direction:column; gap:6px; padding:14px; border:1px dashed rgba(120,70,30,.35);
  border-radius:14px; background:rgba(255,248,238,.72); color:#6b4b33;
}
.wa-empty-files b{font-size:14px;}
.wa-empty-files span{font-size:12px; opacity:.85;}
.wa-print-studio.wa-waiting .wa-preview-box{min-height:92px;}
.wa-advanced{margin-top:8px; border:1px solid rgba(120,70,30,.14); border-radius:12px; padding:8px 10px; background:rgba(255,255,255,.55);}
.wa-advanced summary{cursor:pointer; font-weight:800; font-size:12px; color:#7b4a22;}
.wa-quick-recipes{display:flex; flex-wrap:wrap; gap:6px; margin-top:8px;}
.wa-quick-recipes .btn{padding:6px 8px; font-size:11px; min-height:30px;}
.wa-edit-actions{display:flex; flex-wrap:wrap; gap:6px;}
.wa-edit-actions .btn{padding:7px 9px; font-size:12px; min-height:32px;}

/* Proveedores maestros en Productos: usado por OCR y Compras */
.supplier-master-box{border:1px dashed #e3b98f;background:#fff7ef;border-radius:18px;padding:14px;display:grid;gap:12px}
.supplier-master-head{display:flex;justify-content:space-between;gap:10px;align-items:center;color:#4b2318;font-weight:900}
.supplier-master-head span{font-size:12px;color:#8a5b45;background:#fff;border:1px solid #ead2ba;border-radius:999px;padding:5px 10px}
.supplier-master-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.supplier-edit-grid{grid-template-columns:repeat(2,minmax(180px,1fr))}
@media(max-width:760px){.supplier-edit-grid{grid-template-columns:1fr}.supplier-master-actions .btn{width:100%}}


.store-hero-2{display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center}.store-hero-2 h3{margin:0 0 6px}.store-hero-2 p{margin:0;color:var(--color-muted)}.store-stat-row{display:grid;grid-template-columns:repeat(4,minmax(95px,1fr));gap:8px}.store-stat-row>div{background:var(--color-panel-2);border:1px solid var(--color-line);border-radius:16px;padding:10px}.store-stat-row span{display:block;color:var(--color-muted);font-size:.78rem}.store-stat-row b{font-size:1.25rem;color:var(--color-primary-strong)}.store-toolbar-2{display:grid;grid-template-columns:minmax(260px,1fr) 220px auto auto;gap:10px;align-items:center}.store-layout-2{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:14px}.store-card-btn{border:1px solid var(--color-line);text-align:left;cursor:pointer;color:inherit}.store-card-btn:hover{transform:translateY(-1px);box-shadow:0 12px 26px rgba(70,35,20,.12)}.store-detail-2{position:sticky;top:12px;align-self:start}.store-detail-img img{width:100%;height:210px;object-fit:cover;border-radius:18px;border:1px solid var(--color-line);background:#fff}.store-detail-info{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.store-detail-info>div{background:var(--color-panel-2);border:1px solid var(--color-line);border-radius:14px;padding:10px}.store-detail-info span{display:block;color:var(--color-muted);font-size:.78rem}.store-detail-info b{display:block}.store-desc{color:var(--color-muted)}
@media (max-width: 1050px){.store-hero-2,.store-layout-2{grid-template-columns:1fr}.store-detail-2{position:static}.store-toolbar-2{grid-template-columns:1fr}.store-stat-row{grid-template-columns:repeat(2,1fr)}}



/* Tienda 2.0 clean: buscadores redondeados y tarjetas sin desbordes */
.store-toolbar-2 input,
.store-toolbar-2 select,
.store-toolbar-2 .input{
  width:100%;
  min-height:54px;
  border:2px solid var(--color-line)!important;
  border-radius:22px!important;
  background:#fffdf8!important;
  color:#1f1f1f!important;
  padding:14px 18px!important;
  font-weight:850;
  outline:none;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.75);
}
.store-toolbar-2 input:focus,
.store-toolbar-2 select:focus{
  border-color:var(--color-primary)!important;
  box-shadow:0 0 0 4px rgba(217,104,54,.14)!important;
}
.store-toolbar-2 .btn{
  min-height:54px;
  border-radius:22px!important;
  padding:14px 20px!important;
}
.store-toolbar-2 .checkline{
  min-height:54px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:0 12px;
  border-radius:22px;
  color:var(--color-brown-dark);
  font-weight:850;
  white-space:nowrap;
}
.store-layout-2 > .card{overflow:hidden;}
.store-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));align-items:start;overflow:hidden;}
.store-card{min-width:0;overflow:hidden;}
.store-card img{display:block;width:100%!important;max-width:100%!important;height:126px!important;object-fit:cover!important;object-position:center!important;}
.store-card b,
.store-card span,
.store-card small{
  min-width:0;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
}
.store-card b{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  line-height:1.18;
}
.store-card span,
.store-card small{
  display:block;
  white-space:nowrap;
}
.store-card strong{white-space:nowrap;}

/* Venta 2.0: busqueda superior real por productos, clientes y ventas realizadas */
.universal-search-wrap{position:relative;margin-bottom:12px;}
.universal-results{display:none;background:var(--color-panel);border:1px solid var(--color-line);border-radius:22px;padding:12px;box-shadow:var(--shadow);margin-top:8px;max-height:360px;overflow:auto;}
.universal-results.open{display:block;}
.universal-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;color:var(--color-brown-dark);}
.universal-section{display:grid;gap:7px;margin-top:8px;}
.universal-section h4{margin:4px 0 2px;color:var(--color-brown-dark);font-size:.95rem;}
.universal-row{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;border:1px solid var(--color-line);background:var(--color-panel-2);border-radius:17px;padding:11px 13px;color:var(--color-text);}
.universal-row:hover{border-color:var(--color-primary);box-shadow:0 8px 20px rgba(217,104,54,.12);}
.universal-row b{display:block;color:var(--color-brown-dark);font-size:1rem;}
.universal-row span{display:block;color:var(--color-muted);font-size:.82rem;margin-top:2px;}
.universal-row strong{color:var(--color-primary);white-space:nowrap;}
.universal-loading,.universal-empty{padding:11px;border:1px dashed var(--color-line);border-radius:16px;color:var(--color-muted);font-weight:800;background:var(--color-panel-2);}
.pos-status-pills .pill{font-size:.9rem;}

/* CxC Clientes / Abonos produccion */
.customer-ar-box{
  margin-top:14px;
  padding:14px;
  border:1px solid var(--line, #e8c9b8);
  border-radius:18px;
  background:rgba(255,255,255,.45);
}
.customer-ar-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(120px,1fr));
  gap:10px;
  margin:10px 0 12px;
}
.customer-ar-summary>div{
  border:1px solid var(--line, #e8c9b8);
  border-radius:14px;
  padding:10px;
  background:rgba(255,248,241,.8);
}
.customer-ar-summary span,
.customer-ar-row small{display:block;color:#7c5b4b;font-size:12px;font-weight:700;}
.customer-ar-summary b{font-size:18px;color:#7b2d18;}
.customer-ar-paybox{
  display:grid;
  grid-template-columns:repeat(2,minmax(180px,1fr));
  gap:10px;
  align-items:end;
  padding:12px;
  border:1px dashed var(--line, #e8c9b8);
  border-radius:16px;
  background:rgba(255,255,255,.35);
}
.customer-ar-paybox label,
.customer-ar-payfields label{font-weight:800;color:#5d2b1b;}
.customer-ar-paybox input,
.customer-ar-paybox select,
.customer-ar-payfields input{
  width:100%;
  border:1px solid var(--line, #e8c9b8);
  border-radius:14px;
  padding:12px 14px;
  margin-top:5px;
  background:#fffaf6;
  font-weight:800;
}
.customer-ar-paybox .wide{grid-column:1/-1;}
.customer-ar-payfields{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:10px;grid-column:1/-1;}
.customer-ar-lists{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px;}
.customer-ar-row{
  display:grid;
  grid-template-columns:1fr auto;
  gap:6px;
  padding:9px 10px;
  border:1px solid var(--line, #e8c9b8);
  border-radius:13px;
  margin-bottom:7px;
  background:#fffaf6;
}
.customer-ar-row small{grid-column:1/-1;}
@media(max-width:900px){
  .customer-ar-summary,.customer-ar-paybox,.customer-ar-lists,.customer-ar-payfields{grid-template-columns:1fr;}
}

/* Caja 2.0 - apertura obligatoria para produccion */
.cash-session-banner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  border:1px solid var(--color-line, #e8c9b8);
  border-radius:18px;
  padding:10px 12px;
  margin:8px 0 12px;
  background:#fff7ef;
  color:#5d2b1b;
  font-weight:800;
}
.cash-session-banner b{font-size:1rem;white-space:nowrap;}
.cash-session-banner span{font-size:.86rem;color:#7c5b4b;line-height:1.25;}
.cash-session-banner.ok{border-color:#9fd3ae;background:#f1fff4;}
.cash-session-banner.warn{border-color:#e48a5f;background:#fff1e8;}
.cash-session-banner.info{border-color:#e8c9b8;background:#fffaf6;}
@media(max-width:900px){.cash-session-banner{align-items:flex-start;flex-direction:column;}}


/* NIDFRAN POS 2.0 - Venta 112: DGII automatico + carrito amplio */
.dgii-sale-btn{display:none!important;}
.auto-dgii-action{align-items:stretch!important;}
.dgii-auto-badge{
  min-width:118px;
  min-height:46px;
  padding:10px 12px;
  border-radius:16px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid #efc7ad;
  background:#fff5ee;
  color:#6b341f;
  font-weight:950;
  font-size:.82rem;
  white-space:nowrap;
}
.dgii-auto-badge.loading{background:#fff7d6;color:#8a5a00;border-color:#f4d06f;}
.dgii-auto-badge.ok{background:#dcfce7;color:#166534;border-color:#86efac;}
.dgii-auto-badge.bad{background:#fee2e2;color:#991b1b;border-color:#fecaca;}
.grid-pos{
  grid-template-columns:minmax(420px,1fr) minmax(560px,640px) !important;
  gap:14px !important;
}
.grid-pos > .card:first-child{padding:14px!important;}
.grid-pos > .card:first-child .card-title{margin-bottom:8px!important;}
.grid-pos > .card:first-child .card-title h3{font-size:1.15rem!important;}
.grid-pos > .card:first-child .searchbox{gap:8px!important;}
#posSearch2{
  padding:12px 15px!important;
  min-height:48px!important;
  font-size:1.05rem!important;
  border-radius:16px!important;
}
#btnSearch2,#btnRefreshProducts2{
  padding:11px 14px!important;
  min-height:46px!important;
  border-radius:15px!important;
  font-size:.9rem!important;
}
#productList2.product-list{
  margin-top:8px!important;
  gap:7px!important;
  max-height:calc(100vh - 300px)!important;
}
#productList2 .product-row{
  padding:8px 10px!important;
  gap:8px!important;
  min-height:56px!important;
  grid-template-columns:50px 86px minmax(0,1fr) 106px 66px 46px!important;
}
#productList2 .product-row .product-thumb-wrap{width:44px!important;height:44px!important;}
#productList2 .product-row .product-thumb{width:44px!important;height:44px!important;border-radius:12px!important;}
#productList2 .product-row .code{font-size:.92rem!important;line-height:1.05!important;}
#productList2 .product-row .pname{font-size:.93rem!important;line-height:1.1!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
#productList2 .product-row .muted{font-size:.68rem!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
#productList2 .product-row .metric{padding:6px 4px!important;font-size:.65rem!important;}
#productList2 .product-row .metric b{font-size:.95rem!important;}
#productList2 .product-row .plus{height:42px!important;width:42px!important;border-radius:14px!important;}
#productList2 .sale-price-pro{padding:6px 8px!important;border-radius:13px!important;}
#productList2 .sale-price-label{font-size:.65rem!important;}
#productList2 .sale-price-pro select{font-size:.86rem!important;}
.cart{padding:18px!important;}
.cart .card-title h3{font-size:1.45rem!important;}
.cart-items{gap:11px!important;min-height:190px!important;}
.cart-line{padding:14px!important;grid-template-columns:minmax(0,1fr) auto!important;}
.cart-line b{font-size:1.08rem!important;}
.cart-line .muted{font-size:.8rem!important;}
.cart .grand{font-size:2.45rem!important;}
.cart .pos-actions .btn{font-size:1.05rem!important;min-height:54px!important;}
@media(max-width:1050px){
  .grid-pos{grid-template-columns:1fr!important;}
  #productList2.product-list{max-height:none!important;}
}


/* ===== Venta 2.0 fix 113: precios a la izquierda + limpiar cliente/RNC ===== */
.product-row.price-sale-row{
  grid-template-columns:52px 86px 132px minmax(150px,1fr) 72px 50px !important;
  gap:8px !important;
  align-items:center !important;
}
.product-row.price-sale-row .sale-price-pro{
  grid-column:auto !important;
  min-width:0 !important;
  width:132px !important;
  max-width:132px !important;
  padding:7px 9px !important;
  border-radius:15px !important;
}
.product-row.price-sale-row .sale-price-pro .sale-price-label,
.product-row.price-sale-row .sale-price-pro span{
  font-size:.66rem !important;
  line-height:1 !important;
}
.product-row.price-sale-row .sale-price-pro select{
  font-size:.96rem !important;
  min-height:24px !important;
}
.product-row.price-sale-row .metric{
  min-width:0 !important;
  width:72px !important;
  padding:7px 5px !important;
  position:relative !important;
  z-index:1 !important;
}
.product-row.price-sale-row .plus{
  width:50px !important;
  min-width:50px !important;
}
.product-row.price-sale-row .product-info{
  min-width:0 !important;
  overflow:hidden !important;
}
.product-row.price-sale-row .pname,
.product-row.price-sale-row .muted{
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  white-space:nowrap !important;
}
@media(max-width:900px){
  .product-row.price-sale-row{
    grid-template-columns:52px 90px minmax(0,1fr) 52px !important;
  }
  .product-row.price-sale-row .sale-price-pro{grid-column:2;width:90px !important;max-width:90px !important;}
  .product-row.price-sale-row .product-info{grid-column:3;}
  .product-row.price-sale-row .metric{display:none !important;}
  .product-row.price-sale-row .plus{grid-column:4;}
}

/* ===== Venta 2.0 fix 114: descripcion como antes + precio sin montarse ===== */
#productList2 .product-row.price-sale-row{
  grid-template-columns:50px 76px minmax(280px,1fr) 122px 66px 46px !important;
  gap:8px !important;
}
#productList2 .product-row.price-sale-row .product-thumb-wrap{grid-column:1 !important;}
#productList2 .product-row.price-sale-row .code{grid-column:2 !important;}
#productList2 .product-row.price-sale-row .product-info{
  grid-column:3 !important;
  min-width:0 !important;
  overflow:hidden !important;
  text-align:left !important;
}
#productList2 .product-row.price-sale-row .pname{
  font-size:1rem !important;
  line-height:1.12 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
#productList2 .product-row.price-sale-row .muted{
  font-size:.72rem !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
#productList2 .product-row.price-sale-row .sale-price-pro{
  grid-column:4 !important;
  width:122px !important;
  max-width:122px !important;
  min-width:122px !important;
}
#productList2 .product-row.price-sale-row .metric{
  grid-column:5 !important;
  width:66px !important;
  min-width:66px !important;
}
#productList2 .product-row.price-sale-row .plus{
  grid-column:6 !important;
}
@media(max-width:900px){
  #productList2 .product-row.price-sale-row{
    grid-template-columns:52px minmax(0,1fr) 92px 52px !important;
  }
  #productList2 .product-row.price-sale-row .code{display:none !important;}
  #productList2 .product-row.price-sale-row .product-info{grid-column:2 !important;}
  #productList2 .product-row.price-sale-row .sale-price-pro{grid-column:3 !important;width:92px !important;max-width:92px !important;min-width:92px !important;}
  #productList2 .product-row.price-sale-row .metric{display:none !important;}
  #productList2 .product-row.price-sale-row .plus{grid-column:4 !important;}
}

/* FIX 115 - Cuadre de caja: conteo rapido de denominaciones */
.denom-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0;padding:12px 14px;background:var(--color-panel-2);border:1px solid var(--color-line);border-radius:18px;}
.denom-toolbar b{display:block;color:var(--color-brown-dark);font-weight:950;}
.denom-toolbar span{display:block;margin-top:3px;color:var(--color-muted);font-weight:800;font-size:.9rem;}
.denom-grid.fast{grid-template-columns:1fr;gap:9px;}
.denom-row{display:grid;grid-template-columns:92px minmax(340px,1fr) 120px;align-items:center;gap:10px;background:var(--color-panel-2);border:1px solid var(--color-line);border-radius:18px;padding:10px 12px;font-weight:950;}
.denom-value{color:var(--color-brown-dark);font-size:1.05rem;}
.denom-quick{display:grid;grid-template-columns:44px minmax(86px,120px) 54px 54px 60px 44px;gap:7px;align-items:center;}
.denom-input{height:44px;text-align:center;font-size:1.12rem;border:2px solid var(--color-line);border-radius:15px;background:#fffdf8;color:var(--color-text);font-weight:950;outline:none;}
.denom-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px rgba(217,104,54,.14);}
.denom-btn{height:44px;border:1px solid var(--color-line);border-radius:14px;background:#fff7ef;color:var(--color-brown-dark);font-weight:1000;cursor:pointer;box-shadow:0 4px 12px rgba(67,35,24,.06);}
.denom-btn.plus{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-2));color:#fff;border-color:transparent;}
.denom-btn.clear{background:#fff0ec;color:var(--color-danger);}
.denom-total{text-align:right;color:var(--color-primary-strong);font-size:1.02rem;}
@media(max-width:1050px){.denom-row{grid-template-columns:1fr;}.denom-quick{grid-template-columns:44px 1fr 54px 54px 60px 44px;}.denom-total{text-align:left;}}

/* FIX 116 - Cuadre: limpiar cierre y total visible de denominaciones */
.denom-total-banner{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
  margin:10px 0 12px;
}
.denom-total-banner > div{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  background:#fff7ef;
  border:2px solid var(--color-line);
  border-radius:18px;
  padding:14px 16px;
  box-shadow:0 8px 22px rgba(67,35,24,.06);
}
.denom-total-banner span{
  color:var(--color-brown-dark);
  font-weight:950;
}
.denom-total-banner b{
  color:var(--color-primary-strong);
  font-size:1.35rem;
  font-weight:1000;
}
.denom-total-banner .good b{color:var(--color-success)!important;}
.denom-total-banner .bad b{color:var(--color-danger)!important;}
@media(max-width:1050px){.denom-total-banner{grid-template-columns:1fr;}}

/* FIX 117 - Reimpresion de cierre y calculo de fondo a dejar */
.denom-total-banner.closecalc{grid-template-columns:1.1fr 1fr 1fr 1fr;}
.leave-cash-box{
  display:flex!important;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  background:#fff7ef;
  border:2px solid var(--color-line);
  border-radius:18px;
  padding:10px 14px;
  box-shadow:0 8px 22px rgba(67,35,24,.06);
}
.leave-cash-box input{
  width:150px;
  padding:10px 12px;
  border:2px solid var(--color-line);
  border-radius:14px;
  background:#fffdf8;
  color:var(--color-text);
  font-weight:1000;
  text-align:right;
  outline:none;
}
.leave-cash-box input:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px rgba(217,104,54,.14);}
.cash-session-meta.last-close{border-style:dashed;background:#fffaf3;}
.denom-grid.locked{opacity:.94;}
.denom-grid.locked .denom-input,.denom-grid.locked .denom-btn{cursor:not-allowed;opacity:.78;}
.cash-session-row{grid-template-columns:1fr auto;}
.cash-session-row .btn{min-height:36px;padding:8px 12px;}
@media(max-width:1200px){.denom-total-banner.closecalc{grid-template-columns:1fr 1fr;}}
@media(max-width:760px){.denom-total-banner.closecalc{grid-template-columns:1fr;}.leave-cash-box input{width:130px;}}


/* ===== FIX 120: Productos imagen real + proveedor editable ===== */
.products-v1-layout .product-admin-row.v1 .product-thumb,
.products-v1-layout .product-editor-head .product-thumb.big,
.products-v1-layout .product-image-pro-preview img{
  object-fit:contain!important;
  object-position:center!important;
  background:#fff!important;
}
.products-v1-layout .product-image-pro-preview{
  min-height:104px;
}
.products-v1-layout .product-image-pro-preview img{
  width:92px!important;
  height:92px!important;
  padding:4px!important;
}
.products-v1-layout input[type="file"]{
  cursor:pointer;
}
.products-v1-layout .supplier-master-box input{
  text-transform:none!important;
}

/* NIDFRAN POS 2.0 - Reportes 2.2: filtros redondeados + resumen cuadre */
.report-pro-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.report-tabs,.report-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.report-filter{display:grid;grid-template-columns:minmax(260px,1fr) 170px 170px auto auto auto auto;gap:10px;align-items:center;margin-bottom:12px}
.report-filter input,.report-filter select{width:100%;border:2px solid var(--color-line);background:#fffdf8;color:#151515;border-radius:20px;padding:14px 16px;font-weight:900;outline:none;min-height:50px}
.report-filter input:focus,.report-filter select:focus{border-color:var(--color-primary);box-shadow:0 0 0 4px rgba(217,104,54,.14)}
.report-filter .btn{border-radius:18px;min-height:50px}
.report-table-wrap{overflow:auto;max-width:100%}
.report-table{width:100%;border-collapse:separate;border-spacing:0 7px}
.report-table th{font-size:.82rem;text-align:left;color:var(--color-brown-dark);padding:8px 10px;white-space:nowrap}
.report-table td{background:var(--color-panel-2);border-top:1px solid var(--color-line);border-bottom:1px solid var(--color-line);padding:10px;font-weight:850;white-space:nowrap}
.report-table td:first-child{border-left:1px solid var(--color-line);border-radius:14px 0 0 14px}
.report-table td:last-child{border-right:1px solid var(--color-line);border-radius:0 14px 14px 0}
.cuadre-summary{grid-template-columns:repeat(2,minmax(160px,1fr))}
.cuadre-summary div{min-height:46px}
@media(max-width:1100px){.report-filter{grid-template-columns:1fr 1fr}.report-filter #rptQ{grid-column:1/-1}.report-pro-head{display:block}.report-actions{margin-top:10px}.cuadre-summary{grid-template-columns:1fr}}
@media(max-width:680px){.report-filter{grid-template-columns:1fr}.report-tabs .btn,.report-actions .btn{width:100%;justify-content:center}}

/* NIDFRAN POS 2.0 - WhatsApp archivos reales / miniaturas / bridge local v144 */
.wa-file-card small{display:block;margin-top:3px;font-size:10.5px;color:#8b6b58;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px}
.wa-doc-thumb{background:#fff;border:1px solid rgba(90,47,29,.18);border-radius:14px;overflow:hidden;display:grid;place-items:center;position:relative;color:var(--primary);box-shadow:0 4px 12px rgba(90,47,29,.06)}
.wa-doc-thumb-small{width:58px;height:58px;min-width:58px}
.wa-doc-thumb-large{width:100%;height:138px;min-height:138px}
.wa-doc-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.wa-pdf-mini iframe{width:180%;height:180%;border:0;transform:scale(.56);transform-origin:top left;pointer-events:none;background:#fff}
.wa-pdf-mini span{position:absolute;right:6px;bottom:5px;background:#dc2626;color:white;border-radius:7px;padding:2px 6px;font-size:11px;font-weight:900;letter-spacing:.3px}
.wa-preview-box .wa-doc-thumb-large{margin:0 auto 8px auto;max-width:260px}
.wa-preview-box .wa-thumb{width:88px;height:88px;margin-bottom:8px}
.wa-folder-tree p{word-break:break-word;line-height:1.35}
.wa-actions{display:flex;gap:8px;flex-wrap:wrap}.wa-actions .btn{display:inline-flex;align-items:center;gap:6px}
.wa-thread{scroll-behavior:smooth}.wa-msg p{white-space:pre-wrap;word-break:break-word}
.wa-live-locked{opacity:.7}


/* NIDFRAN POS 2.0 - WhatsApp chat con imagenes/collage y envio anti-duplicado v145 */
.wa-thread-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line);background:#fff8f0;position:sticky;top:0;z-index:2}
.wa-thread-head b,.wa-thread-head span{display:block}.wa-thread-head span{font-size:12px;color:#6b584d;font-weight:800}.wa-thread-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.wa-msg-attachment{display:grid;grid-template-columns:auto 1fr;gap:8px;align-items:center;margin:5px 0 6px;padding:6px;border-radius:12px;background:rgba(255,255,255,.55);border:1px solid rgba(90,47,29,.10)}
.wa-msg-attachment .wa-doc-thumb-chat{width:min(240px,58vw);height:170px;grid-column:1/-1;border-radius:12px}.wa-msg-attachment .wa-doc-thumb-chat img{object-fit:contain;background:#fff}
.wa-msg-attachment span{font-size:11px;color:#7a5a4a;font-weight:900}.wa-msg.client .wa-msg-attachment{background:#fff}.wa-msg.employee .wa-msg-attachment,.wa-msg.bot .wa-msg-attachment{background:rgba(255,255,255,.60)}
.wa-files-title{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}.wa-files-title h3{margin:0}.wa-files-title>div{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.wa-collage-modal{position:fixed;inset:0;background:rgba(20,10,5,.58);z-index:9999;display:grid;place-items:center;padding:18px}.wa-collage-box{width:min(1050px,96vw);max-height:92vh;overflow:auto;background:#fff8f0;border:1px solid rgba(90,47,29,.25);border-radius:24px;padding:14px;box-shadow:0 18px 60px rgba(0,0,0,.25)}
.wa-collage-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.wa-collage-head b,.wa-collage-head span{display:block}.wa-collage-head b{font-size:20px}.wa-collage-head span{color:#6b584d;font-weight:850}.wa-collage-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px}.wa-collage-item{border:1px solid var(--line);background:#fff;border-radius:16px;padding:8px;text-align:center;cursor:pointer}.wa-collage-item .wa-doc-thumb-large{height:180px}.wa-collage-item span{display:block;margin-top:6px;font-size:12px;font-weight:900;color:#5a2f1d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wa-collage-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;justify-content:flex-end}
@media(max-width:760px){.wa-thread-head{display:block}.wa-thread-actions{margin-top:8px;justify-content:flex-start}.wa-msg-attachment .wa-doc-thumb-chat{width:100%;height:150px}.wa-collage-grid{grid-template-columns:repeat(2,1fr)}}

/* WhatsApp 2.0: vista previa sin descarga */
.wa-msg-attachment{appearance:none;width:100%;text-align:left;cursor:pointer;font:inherit;color:inherit}
.wa-msg-attachment:hover{box-shadow:0 0 0 2px rgba(126,62,35,.16)}
.wa-file-preview-modal{position:fixed;inset:0;background:rgba(20,10,5,.62);z-index:10000;display:grid;place-items:center;padding:18px}
.wa-file-preview-box{width:min(980px,96vw);max-height:94vh;overflow:auto;background:#fff8f0;border:1px solid rgba(90,47,29,.25);border-radius:24px;padding:14px;box-shadow:0 18px 60px rgba(0,0,0,.28)}
.wa-file-preview-body{background:#fff;border:1px solid rgba(90,47,29,.18);border-radius:18px;display:grid;place-items:center;min-height:320px;overflow:hidden}
.wa-file-preview-body img{max-width:100%;max-height:72vh;object-fit:contain;display:block;background:#fff}


/* NIDFRAN POS 2.0 - Menu lateral ocultable + WhatsApp archivos visibles */
.desktop-menu-btn{display:none;}
@media (min-width:761px){
  .nf-shell.side-collapse-enabled{transition:grid-template-columns .20s ease;}
  .nf-shell.side-collapse-enabled .desktop-menu-btn{
    display:flex;align-items:center;justify-content:center;gap:0;
    position:fixed;left:292px;top:12px;z-index:1600;
    width:44px;height:44px;padding:0;border-radius:14px;
    background:linear-gradient(135deg,var(--color-primary),var(--color-accent));color:#fff;
    box-shadow:0 10px 24px rgba(60,25,15,.22);
  }
  .nf-shell.side-collapse-enabled .desktop-menu-btn span:last-child{display:none;}
  .nf-shell.side-collapse-enabled .desktop-menu-btn .material-symbols-rounded{font-size:28px;}
  .nf-shell.side-collapsed{grid-template-columns:0 1fr!important;}
  .nf-shell.side-collapsed .nf-side{transform:translateX(-105%);width:0!important;min-width:0!important;padding-left:0!important;padding-right:0!important;border:0!important;overflow:hidden!important;}
  .nf-shell.side-collapsed .desktop-menu-btn{left:12px;}
  .nf-shell.side-collapse-enabled .main{padding-left:62px;}
  .nf-shell.side-collapse-enabled.side-collapsed .main{padding-left:62px;}
}
@media (max-width:760px){.desktop-menu-btn{display:none!important;}}

body.whatsapp-web-mode .nf-shell.side-collapsed .wa-pro-layout{grid-template-columns:300px minmax(760px,1fr) 300px!important;}
body.whatsapp-web-mode .nf-shell.side-collapsed .wa-msg{max-width:min(74%,820px);}
#waFiles{flex:0 0 150px!important;min-height:150px!important;max-height:170px!important;overflow:hidden!important;}
.wa-file-grid{min-height:92px!important;padding-bottom:10px!important;overflow-x:auto!important;overflow-y:hidden!important;}
.wa-file-card{min-height:82px!important;display:grid!important;grid-template-columns:58px minmax(0,1fr)!important;align-items:center!important;gap:8px!important;padding:8px!important;text-align:left!important;}
.wa-file-card b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px;}
.wa-file-card span{display:block;font-size:11px;font-weight:900;color:#6b584d;white-space:nowrap;}
#waPreview{flex:0 0 auto!important;max-height:118px!important;min-height:0!important;overflow:visible!important;padding:7px 14px 9px!important;}
.wa-print-studio-lite{display:flex!important;align-items:center!important;gap:10px!important;min-height:82px!important;}
.wa-print-studio-lite .wa-preview-box{width:260px!important;min-height:78px!important;height:78px!important;display:grid!important;grid-template-columns:62px minmax(0,1fr)!important;align-items:center!important;gap:8px!important;padding:8px!important;text-align:left!important;}
.wa-print-studio-lite .wa-preview-box .wa-doc-thumb-large{width:58px!important;height:58px!important;min-height:58px!important;margin:0!important;}
.wa-print-studio-lite .wa-preview-box b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px;font-size:.85rem;}
.wa-print-studio-lite .wa-preview-box small{font-size:.72rem;}
.wa-print-studio-lite .wa-edit-actions{display:flex!important;grid-column:auto!important;gap:7px!important;flex-wrap:wrap!important;align-items:center!important;}
.wa-print-studio-lite .wa-edit-actions .btn{padding:10px 12px!important;border-radius:13px!important;min-height:40px!important;}
.wa-paper-panel,.wa-advanced{display:none!important;}
@media(max-width:1250px){
  body.whatsapp-web-mode .nf-shell.side-collapsed .wa-pro-layout{grid-template-columns:280px minmax(520px,1fr)!important;}
}

/* =========================
   NIDFRAN TIENDA 2.0 PRO
   Diseño integrado al POS: mismas imágenes, precios y stock.
   ========================= */
.nf-public-store{background:#fff8f0;color:#452415;overflow:auto;}
.nf-public-store #app{min-height:100vh;}
.store2{--s-bg:#fff8f0;--s-panel:#fffdf9;--s-soft:#fff3e7;--s-line:#ead8c8;--s-brown:#4b2618;--s-brown2:#6b3a28;--s-orange:#e77332;--s-orange2:#f59b52;--s-green:#18a567;--s-mint:#e8fff2;--s-muted:#8b6f61;font-family:inherit;color:var(--s-brown);background:linear-gradient(180deg,#fffaf4 0%,#fff4e8 100%);min-height:100%;}
.store2 *{box-sizing:border-box;}
.store2 a{text-decoration:none;color:inherit;}
.store2-loading{min-height:70vh;display:grid;place-items:center;text-align:center;gap:8px;color:#4b2618;background:#fff8f0;}
.store2-loading .brand-badge{width:62px;height:62px;font-size:32px;}
.store2-public{width:100%;}
.store2-admin{border-radius:24px;overflow:hidden;border:1px solid var(--s-line);box-shadow:0 16px 40px rgba(79,38,22,.08);}
.store2-header{position:sticky;top:0;z-index:30;background:rgba(255,250,244,.96);backdrop-filter:blur(14px);border-bottom:1px solid var(--s-line);box-shadow:0 6px 20px rgba(78,41,22,.06);}
.store2-utility{height:38px;display:flex;align-items:center;justify-content:center;gap:34px;padding:0 22px;border-bottom:1px solid rgba(234,216,200,.7);font-size:.9rem;font-weight:800;color:var(--s-brown2);white-space:nowrap;overflow:hidden;}
.store2-utility span,.store2-utility a{display:inline-flex;align-items:center;gap:7px;}
.store2-utility .material-symbols-rounded{font-size:18px;color:var(--s-orange);}
.store2-utility a .material-symbols-rounded{color:var(--s-green);}
.store2-head-main{max-width:1680px;margin:0 auto;display:grid;grid-template-columns:245px minmax(360px,1fr) 132px 190px;gap:18px;align-items:center;padding:18px 28px;}
.store2-logo{display:flex;align-items:center;gap:12px;}
.store2-logo .brand-badge{width:48px;height:48px;border-radius:14px;background:linear-gradient(135deg,var(--s-orange),#bc5226);box-shadow:0 12px 24px rgba(214,104,54,.22);}
.store2-logo b{display:block;font-size:1.55rem;line-height:1;font-weight:950;color:var(--s-brown);}
.store2-logo small{display:block;font-size:1.25rem;font-weight:900;color:var(--s-brown);line-height:1.05;}
.store2-search{height:54px;display:grid;grid-template-columns:minmax(220px,1fr) 190px 56px;background:#fff;border:1px solid var(--s-line);border-radius:24px;overflow:hidden;box-shadow:0 10px 24px rgba(80,42,22,.07);}
.store2-search input,.store2-search select{border:0;background:transparent;padding:0 20px;font:inherit;font-weight:750;outline:none;color:var(--s-brown);min-width:0;}
.store2-search input{direction:ltr!important;unicode-bidi:normal!important;text-align:left!important;}
.store2-search select{border-left:1px solid var(--s-line);color:var(--s-brown2);}
.store2-search button{border:0;background:linear-gradient(135deg,var(--s-orange),var(--s-orange2));color:#fff;display:grid;place-items:center;cursor:pointer;font-weight:900;}
.store2-search button .material-symbols-rounded{font-size:28px;}
.store2-account,.store2-mini-cart{height:56px;border:0;background:transparent;border-left:1px solid var(--s-line);display:flex;align-items:center;justify-content:center;gap:10px;color:var(--s-brown);}
.store2-account .material-symbols-rounded,.store2-mini-cart .material-symbols-rounded{font-size:32px;color:var(--s-brown2);}
.store2-account b,.store2-mini-cart b{display:block;font-weight:950;line-height:1;}
.store2-account small,.store2-mini-cart small{display:block;color:var(--s-muted);font-size:.78rem;font-weight:850;line-height:1.15;}
.store2-mini-cart{cursor:pointer;text-align:left;border-right:1px solid var(--s-line);border-radius:18px;background:#fff9f3;}
.store2-mini-cart:hover{box-shadow:0 10px 24px rgba(79,38,22,.1);}
.store2-nav{max-width:1680px;margin:0 auto;display:flex;align-items:center;gap:10px;padding:10px 28px 12px;border-top:1px solid rgba(234,216,200,.68);overflow:auto;scrollbar-width:thin;}
.store2-nav button,.store2-status{height:42px;border:1px solid transparent;border-radius:15px;background:transparent;padding:0 15px;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;font-weight:900;color:var(--s-brown);}
.store2-nav button{cursor:pointer;}
.store2-cat-all{background:linear-gradient(135deg,#6a3927,#3f2016)!important;color:#fff!important;min-width:190px;box-shadow:0 8px 20px rgba(69,36,21,.16);}
.store2-nav-cat.active,.store2-nav-cat:hover{background:#fff;border-color:var(--s-line);box-shadow:0 8px 20px rgba(79,38,22,.08);}
.store2-status{background:#fff;border-color:var(--s-line);margin-left:auto;color:#754631;}
.store2-status + .store2-status{margin-left:0;}
.store2-status.good{background:var(--s-mint);border-color:#bfead1;color:#087445;}
.store2-status span{width:10px;height:10px;border-radius:50%;background:currentColor;display:inline-block;}
.store2-main{max-width:1680px;margin:0 auto;padding:16px 28px 34px;}
.store2-hero{display:grid;grid-template-columns:minmax(420px,.92fr) minmax(520px,1.08fr);gap:22px;min-height:330px;border:1px solid var(--s-line);border-radius:24px;overflow:hidden;background:radial-gradient(circle at 90% 10%,rgba(231,115,50,.14),transparent 34%),linear-gradient(135deg,#fff5e9 0%,#ffe8d0 100%);box-shadow:0 18px 48px rgba(86,44,24,.09);}
.store2-hero-copy{padding:36px 36px 28px;display:flex;flex-direction:column;justify-content:center;}
.store2-hero h1{margin:0;font-size:clamp(2.15rem,4.5vw,4.25rem);line-height:.98;letter-spacing:-.06em;font-weight:1000;color:var(--s-brown);}
.store2-hero p{max-width:560px;margin:18px 0 22px;font-size:1.05rem;line-height:1.5;color:#6f4a39;font-weight:750;}
.store2-hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:26px;}
.store2 .btn{border-radius:14px;min-height:46px;padding:0 18px;border:1px solid var(--s-line);display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:950;cursor:pointer;color:var(--s-brown);background:#fff;box-shadow:0 8px 18px rgba(80,42,22,.06);}
.store2 .btn.primary{background:linear-gradient(135deg,var(--s-orange),var(--s-orange2));color:#fff;border-color:transparent;}
.store2 .btn.green{background:linear-gradient(135deg,#0c945c,#20bc76);color:#fff;border-color:transparent;}
.store2 .btn.ghost{background:#fff8f2;color:var(--s-brown2);}
.store2-proof{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:auto;}
.store2-proof>div{display:grid;grid-template-columns:34px 1fr;gap:8px;align-items:center;border-right:1px solid rgba(141,97,73,.22);}
.store2-proof>div:last-child{border-right:0;}
.store2-proof .material-symbols-rounded{grid-row:1/3;width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:#fff;color:var(--s-orange);box-shadow:0 6px 14px rgba(80,42,22,.08);font-size:20px;}
.store2-proof b{font-size:.86rem;font-weight:950;}
.store2-proof small{color:#7d5d4e;font-size:.75rem;font-weight:800;}
.store2-hero-art{position:relative;min-height:330px;background:linear-gradient(180deg,rgba(255,255,255,.28),rgba(255,226,190,.38));overflow:hidden;}
.store2-hero-art:before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.65) 1px, transparent 1px);background-size:14px 14px;mask-image:linear-gradient(90deg,transparent 0%,#000 45%,#000 100%);}
.hero-stack,.hero-box,.hero-cup,.hero-calc,.hero-sticky{position:absolute;filter:drop-shadow(0 18px 18px rgba(52,27,16,.18));}
.hero-stack.paper{width:180px;height:90px;left:40px;bottom:74px;border-radius:12px;background:repeating-linear-gradient(0deg,#fff,#fff 10px,#e7d5c7 11px,#e7d5c7 13px);transform:rotate(-8deg);}
.hero-stack.paper:before{content:"";position:absolute;inset:-34px 18px auto 18px;height:78px;border-radius:14px;background:linear-gradient(135deg,#194b9b,#0b2e67);}
.hero-stack.notebook{width:178px;height:130px;left:330px;bottom:78px;border-radius:12px;background:#143b86;transform:rotate(1deg);}
.hero-stack.notebook:after{content:"Oxford";position:absolute;left:24px;bottom:18px;color:#fff;font-size:24px;font-weight:950;}
.hero-cup{left:220px;bottom:58px;width:98px;height:124px;border-radius:16px 16px 30px 30px;background:linear-gradient(90deg,#111,#333);}
.hero-cup i{position:absolute;bottom:90px;width:9px;height:110px;border-radius:5px;background:#1653b4;transform-origin:bottom;}
.hero-cup i:nth-child(1){left:18px;transform:rotate(-19deg);background:#1f7aec}.hero-cup i:nth-child(2){left:38px;transform:rotate(7deg);background:#e33a2c}.hero-cup i:nth-child(3){left:57px;transform:rotate(18deg);background:#f0b429}.hero-cup i:nth-child(4){left:75px;transform:rotate(31deg);background:#228b55}
.hero-box{display:grid;place-items:center;color:#fff;font-weight:1000;letter-spacing:.02em;}
.hero-box.green{right:142px;bottom:91px;width:170px;height:145px;border-radius:14px;background:linear-gradient(135deg,#0f7f47,#1fa765);font-size:30px;}
.hero-box.blue{right:48px;bottom:56px;width:86px;height:155px;border-radius:12px;background:linear-gradient(135deg,#1749a1,#58a9ff);font-size:19px;}
.hero-calc{right:108px;bottom:18px;width:124px;height:78px;border-radius:14px;background:#2d2d2d;transform:rotate(-5deg);}
.hero-calc:after{content:"";position:absolute;left:15px;top:12px;width:94px;height:20px;background:#b6c9af;border-radius:5px;box-shadow:0 32px 0 -10px #111;}
.hero-sticky{right:18px;bottom:23px;width:106px;height:64px;border-radius:8px;background:#ffd978;transform:rotate(-3deg);}
.store2-category-strip{display:grid;grid-template-columns:repeat(8,minmax(92px,1fr));gap:10px;background:#fff;border:1px solid var(--s-line);border-radius:22px;margin:0 0 16px;padding:12px;box-shadow:0 12px 30px rgba(80,42,22,.06);}
.store2-cat-chip{position:relative;border:0;background:transparent;border-radius:18px;min-height:82px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;cursor:pointer;color:var(--s-brown);font-weight:950;}
.store2-cat-chip:hover{background:#fff5ec;}
.store2-cat-chip .material-symbols-rounded{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:#fff0e3;color:var(--s-orange);font-size:26px;box-shadow:0 8px 18px rgba(80,42,22,.08);}
.store2-cat-chip em{position:absolute;top:4px;right:18px;background:#74d18d;color:#0c5b30;border-radius:999px;padding:2px 8px;font-style:normal;font-size:.7rem;font-weight:950;}
.store2-content{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:16px;align-items:start;}
.store2-products-area{min-width:0;}
.store2-section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0 10px;}
.store2-section-title h2{margin:0;display:flex;align-items:center;gap:8px;font-size:1.2rem;font-weight:1000;color:var(--s-brown);}
.store2-section-title h2 .material-symbols-rounded{color:var(--s-orange);}
.store2-section-title>div{display:flex;align-items:center;gap:9px;flex-wrap:wrap;}
.store2-section-title.small{margin-top:18px;}
.store2-check{display:inline-flex;align-items:center;gap:6px;font-weight:850;color:var(--s-brown2);}
.store2-count{padding:8px 12px;border-radius:999px;background:#fff;border:1px solid var(--s-line);font-weight:950;color:var(--s-brown2);}
.store2-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;}
.store2-card{background:#fff;border:1px solid var(--s-line);border-radius:18px;overflow:hidden;box-shadow:0 10px 24px rgba(80,42,22,.06);transition:.16s ease;min-width:0;}
.store2-card:hover{transform:translateY(-2px);box-shadow:0 18px 36px rgba(80,42,22,.12);}
.store2-img-wrap{height:154px;position:relative;background:linear-gradient(180deg,#fff,#fff6ef);display:grid;place-items:center;padding:10px;}
.store2-img-wrap img{max-width:100%;width:100%;height:132px;object-fit:contain;border-radius:12px;}
.store2-quick{position:absolute;right:10px;top:10px;width:38px;height:38px;border:0;border-radius:13px;background:#fff;color:var(--s-green);display:grid;place-items:center;box-shadow:0 8px 20px rgba(80,42,22,.12);cursor:pointer;}
.store2-card-body{padding:12px;display:grid;gap:7px;}
.store2-card h3{margin:0;font-size:.98rem;line-height:1.2;font-weight:1000;color:var(--s-brown);min-height:2.4em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.store2-card p{margin:0;color:var(--s-muted);font-size:.78rem;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.store2-card strong{color:#17345a;font-size:1.12rem;font-weight:1000;}
.store2-card-foot{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;margin-top:2px;}
.store2-stock{display:inline-flex;align-items:center;justify-content:center;min-height:28px;border-radius:999px;padding:0 9px;font-size:.72rem;font-weight:950;background:#ecfff4;color:#087445;white-space:nowrap;}
.store2-stock.warn{background:#fff0e2;color:#a04b16;}
.store2-add{height:34px;border:0;border-radius:11px;background:linear-gradient(135deg,var(--s-orange),var(--s-orange2));color:#fff;font-weight:1000;padding:0 11px;display:inline-flex;align-items:center;gap:5px;cursor:pointer;box-shadow:0 8px 18px rgba(231,115,50,.18);}
.store2-add .material-symbols-rounded{font-size:18px;}
.store2-cart{position:sticky;top:154px;background:#fff;border:1px solid var(--s-line);border-radius:22px;box-shadow:0 14px 36px rgba(80,42,22,.09);padding:16px;max-height:calc(100vh - 170px);overflow:auto;}
.store2-cart h2{margin:0;font-size:1.35rem;font-weight:1000;color:var(--s-brown);}
.store2-cart>p{margin:0 0 12px;color:var(--s-muted);font-weight:850;}
.store2-cart-list{display:grid;gap:8px;}
.store2-cart-empty{padding:16px;border:1px dashed var(--s-line);border-radius:16px;color:var(--s-muted);font-weight:850;background:#fff9f4;}
.store2-cart-item{display:grid;grid-template-columns:54px 1fr 24px;gap:8px;border-bottom:1px solid var(--s-line);padding:8px 0;align-items:center;}
.store2-cart-item img{width:54px;height:54px;object-fit:contain;border:1px solid var(--s-line);border-radius:12px;background:#fff7ef;}
.store2-cart-item b{display:block;font-size:.82rem;font-weight:1000;line-height:1.15;color:var(--s-brown);}
.store2-cart-item small{display:block;color:var(--s-muted);font-size:.7rem;font-weight:850;}
.store2-cart-item strong{display:block;color:#17345a;font-size:.82rem;font-weight:1000;margin-top:2px;}
.store2-qty{display:inline-grid;grid-template-columns:24px 28px 24px;align-items:center;margin-top:4px;border:1px solid var(--s-line);border-radius:999px;overflow:hidden;background:#fff;}
.store2-qty button{border:0;background:#fff3e9;color:var(--s-brown);height:24px;font-weight:1000;cursor:pointer;}
.store2-qty span{text-align:center;font-size:.78rem;font-weight:1000;}
.store2-remove{border:0;background:transparent;color:#d95e2c;font-size:20px;font-weight:900;cursor:pointer;}
.store2-cart-total{display:grid;gap:8px;margin:12px 0;border-top:1px solid var(--s-line);padding-top:12px;}
.store2-cart-total>div{display:flex;justify-content:space-between;font-weight:950;color:var(--s-brown2);}
.store2-cart-total .total{font-size:1.15rem;color:var(--s-brown);}
.store2-cart-total .total b{color:var(--s-orange);}
.store2-cart-btn,.store2-wa-btn{width:100%;min-height:44px;border:0;border-radius:13px;margin-top:8px;display:flex;align-items:center;justify-content:center;gap:8px;font-weight:1000;color:#fff;cursor:pointer;}
.store2-cart-btn{background:linear-gradient(135deg,var(--s-orange),var(--s-orange2));}
.store2-wa-btn{background:linear-gradient(135deg,#0c945c,#20bc76);}
.store2-wa-btn.disabled{opacity:.55;pointer-events:none;}
.store2-secure{display:flex;align-items:center;justify-content:center;gap:6px;color:#9b6d55;font-weight:900;margin-top:12px;}
.store2-secure .material-symbols-rounded{font-size:17px;}
.store2-offers{margin-top:4px;}
.store2-offer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.store2-offer{min-height:126px;border:1px solid var(--s-line);border-radius:18px;background:linear-gradient(135deg,#fff,#fff0e3);display:grid;grid-template-columns:1fr 130px;gap:10px;overflow:hidden;padding:14px;box-shadow:0 10px 24px rgba(80,42,22,.05);}
.store2-offer span{display:inline-block;background:#4fc069;color:#fff;border-radius:9px;padding:3px 8px;font-weight:1000;font-size:.78rem;}
.store2-offer h3{margin:8px 0 2px;color:var(--s-brown);font-size:1rem;font-weight:1000;}
.store2-offer p{margin:0;color:var(--s-muted);font-weight:850;font-size:.82rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.store2-offer button{border:0;background:transparent;color:var(--s-orange);font-weight:1000;margin-top:8px;padding:0;cursor:pointer;}
.store2-offer img{width:130px;height:100px;object-fit:contain;align-self:center;}
.store2-empty{grid-column:1/-1;min-height:230px;display:grid;place-items:center;text-align:center;background:#fff;border:1px dashed var(--s-line);border-radius:18px;color:var(--s-muted);padding:30px;}
.store2-empty .material-symbols-rounded{font-size:54px;color:var(--s-orange);}
.store2-empty h3{margin:0;color:var(--s-brown);}
.store2-chat{position:fixed;right:24px;bottom:22px;z-index:40;display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 22px;border-radius:14px;background:linear-gradient(135deg,#0c945c,#20bc76);color:#fff;font-weight:1000;box-shadow:0 16px 36px rgba(12,148,92,.28);}
.store2-admin .store2-chat{position:absolute;}
@media (max-width: 1400px){.store2-grid{grid-template-columns:repeat(3,minmax(0,1fr));}.store2-head-main{grid-template-columns:220px minmax(260px,1fr) 150px;}.store2-account{display:none;}.store2-content{grid-template-columns:minmax(0,1fr) 300px;}.store2-hero{grid-template-columns:1fr .92fr}.store2-utility{gap:18px;}}
@media (max-width: 1100px){.store2-head-main{grid-template-columns:1fr;}.store2-search{grid-template-columns:1fr 54px;}.store2-search select{display:none;}.store2-mini-cart{justify-content:flex-start;padding:0 14px;}.store2-hero{grid-template-columns:1fr;}.store2-hero-art{min-height:250px;}.store2-content{grid-template-columns:1fr;}.store2-cart{position:static;max-height:none;}.store2-category-strip{grid-template-columns:repeat(4,1fr);}.store2-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.store2-offer-grid{grid-template-columns:1fr;}.store2-utility{justify-content:flex-start;overflow:auto;}}
@media (max-width: 650px){.store2-main,.store2-head-main,.store2-nav{padding-left:12px;padding-right:12px;}.store2-hero-copy{padding:28px 20px;}.store2-proof{grid-template-columns:1fr;}.store2-proof>div{border-right:0;border-bottom:1px solid rgba(141,97,73,.18);padding-bottom:8px;}.store2-category-strip{grid-template-columns:repeat(2,1fr);}.store2-grid{grid-template-columns:1fr;}.store2-section-title{align-items:flex-start;flex-direction:column;}.store2-chat{right:12px;left:12px;justify-content:center;}.store2-logo b{font-size:1.25rem}.store2-logo small{font-size:1rem}.store2-utility{font-size:.78rem}.store2-hero h1{font-size:2.25rem}.store2-offer{grid-template-columns:1fr 90px}.store2-offer img{width:90px;}}

/* =========================
   TIENDA PUBLICA 2.0 - ajustes finales
   Sin mensajes internos, con flyer y detalle de producto.
   ========================= */
.store2-public .store2-status.good{background:#fff7ed;border-color:var(--s-line);color:var(--s-brown2);}
.store2-public .store2-hero-flyer{display:flex;align-items:center;justify-content:center;padding:28px;background:radial-gradient(circle at 75% 20%,rgba(231,115,50,.18),transparent 32%),linear-gradient(135deg,#fff,#fff0df);}
.store2-public .store2-hero-flyer:before{opacity:.55;}
.store2-public .store2-hero-flyer img{position:relative;z-index:2;max-width:78%;max-height:190px;object-fit:contain;background:#fff;border-radius:22px;padding:22px;box-shadow:0 22px 46px rgba(80,42,22,.15);}
.store2-flyer-note{position:absolute;z-index:3;left:34px;bottom:28px;right:34px;background:rgba(255,255,255,.86);border:1px solid rgba(234,216,200,.9);border-radius:18px;padding:13px 16px;box-shadow:0 14px 28px rgba(80,42,22,.12);backdrop-filter:blur(8px);}
.store2-flyer-note b{display:block;color:var(--s-brown);font-weight:1000;font-size:1.05rem;}
.store2-flyer-note small{display:block;color:var(--s-muted);font-weight:850;}
.store2-card{cursor:pointer;}
.store2-modal-backdrop{position:fixed;inset:0;z-index:9999;background:rgba(34,18,12,.58);display:flex;align-items:center;justify-content:center;padding:22px;backdrop-filter:blur(4px);}
.store2-modal{width:min(1120px,96vw);max-height:92vh;overflow:auto;background:#fffdf9;border:1px solid var(--s-line,#ead8c8);border-radius:26px;box-shadow:0 30px 80px rgba(20,10,6,.35);display:grid;grid-template-columns:minmax(320px,.95fr) minmax(340px,1.05fr);position:relative;}
.store2-modal-close{position:absolute;right:16px;top:12px;z-index:2;width:42px;height:42px;border:0;border-radius:14px;background:#fff0e5;color:#7b3d22;font-size:28px;font-weight:1000;cursor:pointer;box-shadow:0 8px 18px rgba(80,42,22,.12);}
.store2-modal-img{min-height:520px;background:linear-gradient(180deg,#fff,#fff2e8);display:grid;place-items:center;padding:26px;border-right:1px solid var(--s-line,#ead8c8);}
.store2-modal-img img{max-width:100%;max-height:480px;object-fit:contain;border-radius:20px;background:#fff;box-shadow:0 14px 34px rgba(80,42,22,.12);}
.store2-modal-info{padding:38px 34px;display:flex;flex-direction:column;gap:14px;}
.store2-modal-badge{align-self:flex-start;border-radius:999px;background:#ecfff4;color:#087445;padding:8px 12px;font-weight:1000;font-size:.85rem;}
.store2-modal h2{margin:0;color:var(--s-brown,#4b2618);font-size:clamp(1.7rem,2.3vw,2.55rem);line-height:1.05;font-weight:1000;letter-spacing:-.03em;}
.store2-modal-desc{margin:0;color:#6f4a39;font-weight:800;line-height:1.45;}
.store2-modal-price{font-size:2rem;font-weight:1000;color:#17345a;margin-top:4px;}
.store2-modal-refs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0;}
.store2-modal-refs div{border:1px solid var(--s-line,#ead8c8);border-radius:14px;background:#fff8f2;padding:11px;min-width:0;}
.store2-modal-refs span{display:block;color:#98705d;font-size:.77rem;font-weight:900;text-transform:uppercase;letter-spacing:.04em;}
.store2-modal-refs b{display:block;color:var(--s-brown,#4b2618);font-weight:1000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px;}
.store2-modal-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:auto;}
.store2-modal-actions .btn{min-width:170px;}
@media(max-width:900px){.store2-modal{grid-template-columns:1fr;}.store2-modal-img{min-height:300px;border-right:0;border-bottom:1px solid var(--s-line,#ead8c8);}.store2-modal-img img{max-height:300px}.store2-modal-info{padding:26px 20px}.store2-modal-refs{grid-template-columns:1fr}.store2-public .store2-hero-flyer img{max-width:88%;}.store2-flyer-note{position:relative;left:auto;right:auto;bottom:auto;margin-top:14px}.store2-public .store2-hero-flyer{flex-direction:column;min-height:250px}}

/* =========================
   TIENDA PUBLICA 2.0 - MOVIL PRIMERO
   Flyer real arriba, menus ocultos y pantalla completa en móvil.
   ========================= */
.store2-hero-public-flyer{display:block!important;min-height:0!important;background:#fff!important;border-radius:22px;overflow:hidden;box-shadow:0 12px 32px rgba(80,42,22,.10);}
.store2-hero-public-flyer .store2-hero-flyer{min-height:0!important;padding:0!important;background:#fff!important;display:block!important;}
.store2-hero-public-flyer .store2-hero-flyer:before,.store2-hero-public-flyer .store2-flyer-note{display:none!important;}
.store2-hero-public-flyer .store2-hero-flyer img{display:block!important;width:100%!important;max-width:none!important;height:auto!important;max-height:none!important;object-fit:contain!important;background:#fff!important;border-radius:0!important;padding:0!important;box-shadow:none!important;}

@media (max-width: 760px){
  html,body{max-width:100%;overflow-x:hidden;}
  .nf-public-store{background:#fff8f0!important;overflow-x:hidden!important;}
  .store2{background:#fff8f0!important;min-width:0!important;}
  .store2-header{position:relative!important;top:auto!important;box-shadow:0 3px 12px rgba(78,41,22,.05)!important;}
  .store2-utility{height:32px!important;justify-content:flex-start!important;gap:16px!important;padding:0 12px!important;font-size:.76rem!important;overflow-x:auto!important;overflow-y:hidden!important;scrollbar-width:none!important;}
  .store2-utility::-webkit-scrollbar{display:none!important;}
  .store2-utility span:nth-last-child(-n+2){display:none!important;}
  .store2-head-main{display:grid!important;grid-template-columns:1fr!important;gap:10px!important;padding:12px 12px 10px!important;}
  .store2-logo{gap:9px!important;}
  .store2-logo .brand-badge{width:44px!important;height:44px!important;border-radius:13px!important;font-size:25px!important;}
  .store2-logo b{font-size:1.28rem!important;}
  .store2-logo small{font-size:1.03rem!important;}
  .store2-search{height:50px!important;grid-template-columns:minmax(0,1fr) 54px!important;border-radius:22px!important;box-shadow:0 8px 18px rgba(80,42,22,.07)!important;}
  .store2-search input{font-size:.92rem!important;padding:0 14px!important;}
  .store2-search select{display:none!important;}
  .store2-account{display:none!important;}
  .store2-mini-cart{height:52px!important;border:1px solid var(--s-line)!important;border-radius:18px!important;background:#fffdf9!important;justify-content:flex-start!important;padding:0 14px!important;box-shadow:none!important;}
  .store2-mini-cart .material-symbols-rounded{font-size:28px!important;}
  .store2-nav{display:none!important;}
  .store2-main{padding:8px 10px 76px!important;max-width:100%!important;}
  .store2-hero{margin:0 0 10px!important;border-radius:14px!important;border:1px solid #ead8c8!important;}
  .store2-hero-public-flyer .store2-hero-flyer img{width:100%!important;height:auto!important;}
  .store2-category-strip{display:none!important;}
  .store2-content{display:block!important;}
  .store2-products-area{min-width:0!important;}
  .store2-section-title{position:sticky!important;top:0!important;z-index:10!important;background:rgba(255,248,240,.96)!important;padding:8px 0!important;margin:0 0 8px!important;border-bottom:1px solid rgba(234,216,200,.8)!important;backdrop-filter:blur(8px)!important;}
  .store2-section-title h2{font-size:1rem!important;}
  .store2-section-title>div{width:100%!important;display:flex!important;gap:6px!important;overflow:auto!important;scrollbar-width:none!important;}
  .store2-section-title>div::-webkit-scrollbar{display:none!important;}
  .store2-check,.store2-count,.store2-section-title .btn.ghost{font-size:.78rem!important;white-space:nowrap!important;padding:7px 9px!important;border-radius:12px!important;}
  .store2-grid{grid-template-columns:1fr!important;gap:12px!important;overflow:visible!important;}
  .store2-card{border-radius:18px!important;overflow:hidden!important;background:#fff!important;box-shadow:0 8px 18px rgba(80,42,22,.07)!important;}
  .store2-img-wrap{height:210px!important;padding:12px!important;background:linear-gradient(180deg,#fff,#fff8f2)!important;}
  .store2-img-wrap img{width:100%!important;height:100%!important;object-fit:contain!important;display:block!important;}
  .store2-card-body{padding:12px 14px 14px!important;}
  .store2-card h3{font-size:1.06rem!important;line-height:1.18!important;margin-bottom:7px!important;}
  .store2-card-body p{font-size:.82rem!important;white-space:normal!important;}
  .store2-card-body strong{font-size:1.38rem!important;}
  .store2-card-foot{display:grid!important;grid-template-columns:1fr auto!important;gap:8px!important;align-items:center!important;}
  .store2-stock{min-height:36px!important;display:flex!important;align-items:center!important;justify-content:center!important;font-size:.86rem!important;}
  .store2-add{height:42px!important;border-radius:13px!important;font-size:.92rem!important;}
  .store2-quick{width:42px!important;height:42px!important;right:12px!important;top:12px!important;}
  .store2-cart{position:static!important;max-height:none!important;margin-top:14px!important;border-radius:18px!important;padding:14px!important;}
  .store2-cart-btn{display:none!important;}
  .store2-wa-btn{min-height:46px!important;border-radius:14px!important;}
  .store2-offers{display:none!important;}
  .store2-chat{left:10px!important;right:10px!important;bottom:8px!important;min-height:48px!important;border-radius:14px!important;z-index:60!important;justify-content:center!important;font-size:.95rem!important;box-shadow:0 10px 24px rgba(12,148,92,.25)!important;}
  .store2-modal-backdrop{padding:8px!important;align-items:flex-start!important;overflow:auto!important;}
  .store2-modal{width:100%!important;max-height:none!important;border-radius:18px!important;grid-template-columns:1fr!important;margin:8px 0 76px!important;}
  .store2-modal-img{min-height:260px!important;padding:14px!important;border-right:0!important;border-bottom:1px solid var(--s-line,#ead8c8)!important;}
  .store2-modal-img img{max-height:300px!important;box-shadow:none!important;}
  .store2-modal-info{padding:18px 14px 16px!important;gap:10px!important;}
  .store2-modal h2{font-size:1.45rem!important;line-height:1.1!important;}
  .store2-modal-price{font-size:1.6rem!important;}
  .store2-modal-refs{grid-template-columns:1fr!important;gap:7px!important;}
  .store2-modal-actions .btn{width:100%!important;min-width:0!important;}
}

@media (max-width: 390px){
  .store2-utility{font-size:.72rem!important;}
  .store2-main{padding-left:8px!important;padding-right:8px!important;}
  .store2-img-wrap{height:190px!important;}
  .store2-card-body strong{font-size:1.28rem!important;}
}


/* NIDFRAN POS 2.0 - Producción: productos paginados para evitar lentitud con miles de productos */
.product-list-toolbar,.product-list-pager{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0 10px;color:var(--color-muted);font-weight:900;flex-wrap:wrap}
.product-list-toolbar label{display:flex;align-items:center;gap:8px;color:var(--color-brown-dark);font-weight:950}
.product-list-toolbar select{border:2px solid var(--color-line);background:#fffdf8;border-radius:12px;padding:8px 10px;font-weight:950;color:var(--color-text)}
.product-list-pager{justify-content:center;border-top:1px solid var(--color-line);padding-top:10px}
.product-list-pager .btn[disabled]{opacity:.45;cursor:not-allowed}
@media(max-width:760px){.product-list-toolbar,.product-list-pager{justify-content:stretch}.product-list-pager .btn{flex:1}}

/* NIDFRAN FIX: Configuracion de copias por tipo de pago */
.mini-grid{display:grid;grid-template-columns:repeat(2,minmax(130px,1fr));gap:8px}
.mini-grid label{min-width:0}
@media(max-width:760px){.mini-grid{grid-template-columns:1fr}}

/* NIDFRAN POS 2.0 - WhatsApp notificaciones por cliente */
.nav button{position:relative;}
.nav button.has-wa-unread{box-shadow:0 0 0 2px rgba(239,68,68,.28), 0 10px 22px rgba(0,0,0,.18);}
.wa-nav-badge{margin-left:auto;min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:#ef4444;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:1000;font-size:.78rem;box-shadow:0 6px 14px rgba(239,68,68,.38);}
.nf-shell.side-collapsed .wa-nav-badge{position:absolute;right:8px;top:6px;margin-left:0;}
.wa-unread-top.danger,.pill.danger.wa-unread-top{background:#fee2e2!important;color:#991b1b!important;border-color:#fecaca!important;font-weight:950;}
.wa-conv.unread{background:#fff7ed!important;border-left:5px solid #ef4444!important;box-shadow:inset 0 0 0 1px rgba(239,68,68,.10);}
.wa-conv.unread b{color:#991b1b!important;font-weight:1000;}
.wa-conv.unread .wa-status-dot{box-shadow:0 0 0 4px rgba(239,68,68,.16);}
.wa-new-label{display:inline-flex!important;vertical-align:middle;margin-left:6px;background:#ef4444;color:#fff!important;border-radius:999px;padding:2px 7px;font-size:.68rem;font-weight:1000;}
.wa-unread-badge{min-width:25px;height:25px;border-radius:999px;background:#ef4444;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:.78rem;font-weight:1000;box-shadow:0 6px 14px rgba(239,68,68,.32);}
.wa-last-message{max-width:240px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#5b3327!important;font-weight:850;}
.wa-conv.unread .wa-last-message{color:#7f1d1d!important;font-weight:950;}
@media(max-width:1100px){.wa-last-message{max-width:70vw}.wa-nav-badge{margin-left:6px}}


/* NIDFRAN FIX: WhatsApp notificacion roja clara por cliente */
.wa-conv.unread{background:#fff1f2!important;border:2px solid #ef4444!important;border-left:8px solid #dc2626!important;box-shadow:0 8px 20px rgba(220,38,38,.16), inset 0 0 0 1px rgba(220,38,38,.08)!important;}
.wa-conv.unread.active{background:#ffe4e6!important;border-color:#dc2626!important;}
.wa-new-label{display:inline-flex!important;align-items:center;justify-content:center;margin-left:8px;background:#dc2626!important;color:#fff!important;border-radius:8px!important;padding:3px 8px!important;font-size:.68rem!important;font-weight:1000!important;letter-spacing:.2px;vertical-align:middle;box-shadow:0 5px 12px rgba(220,38,38,.25);}
.wa-unread-badge{background:#dc2626!important;color:#fff!important;}
.wa-unread-top.danger,.pill.danger.wa-unread-top{background:#dc2626!important;color:#fff!important;border-color:#b91c1c!important;}


/* NIDFRAN FIX: WhatsApp ventana roja de mensaje nuevo */
.wa-floating-notice.show{
  display:block!important;
  background:#dc2626!important;
  color:#fff!important;
  border:2px solid #991b1b!important;
  box-shadow:0 18px 55px rgba(220,38,38,.42), 0 0 0 4px rgba(220,38,38,.14)!important;
}
.wa-floating-notice.show b{color:#fff!important;font-weight:1000;}
.wa-floating-notice.show span{color:#fff!important;opacity:1!important;font-weight:850;}
.wa-floating-notice.show button:first-child{background:#fff!important;color:#991b1b!important;}
.wa-floating-notice.show button:last-child{background:#7f1d1d!important;color:#fff!important;}

/* Tienda 2.0: navegación de productos para no depender solo de búsqueda */
.store2-pager{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin:16px 0 20px;padding:14px;border:1px dashed rgba(141,97,73,.28);background:#fff8f1;border-radius:18px;color:#6d4c3d;font-weight:900;}
.store2-pager span{font-size:.95rem;}
.store2-pager .btn{min-height:42px;}
@media (max-width:650px){.store2-pager{align-items:stretch;flex-direction:column}.store2-pager .btn{width:100%;justify-content:center}}


/* NIDFRAN POS 2.0 - TIENDA VER TODOS / REF SKU / CACHE 122-store-all-ref-20260704 */
.store2-admin .store2-main{max-height:calc(100vh - 165px)!important;overflow-y:auto!important;scroll-behavior:smooth!important;}
.store2-public{min-height:100vh!important;}
body.nf-public-store{overflow-y:auto!important;}
.store2-grid{align-items:stretch!important;}
.store2-card-body p{direction:ltr!important;text-align:left!important;unicode-bidi:normal!important;}
.store2-pager{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;margin:16px 0;padding:14px;border:1px solid var(--s-line);border-radius:18px;background:#fffdf9;font-weight:950;color:var(--s-brown2);}
.store2-pager .btn{min-height:40px!important;}


/* NIDFRAN POS 2.0 - Cuadre: botón Guardar ingresos/retiros/gastos visible */
.movement-box-v2{
  background:#fffdf8!important;
  border:2px solid var(--color-line)!important;
  box-shadow:0 10px 24px rgba(86,44,24,.08)!important;
}
.movement-title-row{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  margin-bottom:12px;
}
.movement-title-row h4{margin:0!important;font-size:1.12rem!important;}
.movement-title-row span{
  color:var(--color-muted);
  font-weight:900;
  font-size:.92rem;
}
.movement-form-v2{
  display:grid!important;
  grid-template-columns:minmax(170px,210px) minmax(140px,170px) minmax(220px,1fr) minmax(210px,240px)!important;
  gap:10px!important;
  align-items:end!important;
}
.movement-form-v2 label{
  display:grid!important;
  gap:6px!important;
  font-weight:950!important;
  color:var(--color-brown-dark)!important;
}
.movement-save-btn{
  min-height:50px!important;
  width:100%!important;
  font-size:1rem!important;
  font-weight:1000!important;
  border-radius:16px!important;
  white-space:normal!important;
}
.movement-help{
  margin-top:10px;
  padding:10px 12px;
  border-radius:14px;
  background:rgba(217,104,54,.08);
  border:1px solid rgba(217,104,54,.18);
  color:var(--color-brown-dark);
  font-weight:900;
}
@media (max-width: 980px){
  .movement-form-v2{
    grid-template-columns:1fr 1fr!important;
  }
  .movement-form-v2 label:nth-child(3),
  .movement-save-btn{
    grid-column:1 / -1!important;
  }
}
@media (max-width: 620px){
  .movement-form-v2{
    grid-template-columns:1fr!important;
  }
  .movement-save-btn{
    position:sticky!important;
    bottom:10px!important;
    z-index:5!important;
  }
}


/* NIDFRAN POS 2.0 - Cuadre movimientos guardar visible/persistente */
.movement-save-wide{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  width:100%!important;
  min-height:56px!important;
  font-size:1.05rem!important;
  font-weight:1000!important;
  border-radius:16px!important;
}
.movement-list{
  max-height:220px;
  overflow:auto;
}


/* NIDFRAN POS 2.0 - Caja movimientos backend multi-PC */
.movement-box-v2{
  border:3px solid rgba(192,74,43,.22)!important;
}
.movement-list div{
  background:#fff!important;
  border:1px solid rgba(94,54,28,.12)!important;
  border-radius:12px!important;
  padding:8px 10px!important;
  margin:6px 0!important;
}


/* NIDFRAN POS 2.0 - Venta muestra Ref/SKU articulo, no SKU proveedor */
.sale-ref-line{
  font-weight:800!important;
  color:#5b3926!important;
}


/* NIDFRAN POS 2.0 - Labels con codigo de articulo y color visual */
.label-preview{
  background:#fff8ef!important;
  color:#5a2f18!important;
  border:2px dashed #b86d38!important;
}
.label-preview b{
  color:#8b3f16!important;
}
.label-preview em{
  display:block;
  font-style:normal;
  color:#7a5944!important;
  font-size:.72rem;
  font-weight:800;
}
.label-preview .barcode i{
  background:#7a2d12!important;
}


/* NIDFRAN POS 2.0 - Label PAP arriba y Ref/SKU articulo separado */
.label-preview b{
  display:block;
}
.label-preview em{
  display:block;
  font-style:normal;
}


/* NIDFRAN POS 2.0 - QR/Barcode AUTO PAP o MANUAL */
.barcode-auto-box{
  background:#fff8ef!important;
  border:1px dashed rgba(184,109,56,.55)!important;
  border-radius:16px!important;
  padding:10px!important;
}
.barcode-mode-row{
  display:grid;
  grid-template-columns: minmax(180px,.65fr) 1fr;
  gap:10px;
  align-items:center;
}
.barcode-mode-row select,
.barcode-mode-row input{
  min-height:42px;
}
.barcode-mode-row input[readonly]{
  background:#f7eadc!important;
  color:#8b3f16!important;
  font-weight:900!important;
}
@media(max-width:760px){
  .barcode-mode-row{grid-template-columns:1fr;}
}


/* NIDFRAN POS 2.0 - PAP siempre con guion */
.label-preview b,
.nf-pos-code-top{
  letter-spacing:.2px;
}


/* NIDFRAN POS 2.0 - lector PAP apostrofe/coma se normaliza en busqueda */
.barcode-auto-box small::after{
  content:"  Lector: PAP'100743 / PAP,100743 se busca como PAP-100743.";
  display:block;
  margin-top:4px;
  color:#8b3f16;
  font-weight:800;
}


/* NIDFRAN POS 2.0 - limpiar busqueda al agregar producto */
.searchbox input#posSearch2:focus,
.universal-search-bar input#universalSearch2:focus{
  outline:2px solid rgba(139,63,22,.35)!important;
  box-shadow:0 0 0 4px rgba(255,248,239,.85)!important;
}


/* NIDFRAN POS 2.0 - carrito suma mismo PAP normalizado */
.cart-line .muted{
  word-break:break-word;
}


/* NIDFRAN POS 2.0 - scanner Enter no toma producto viejo */
.searchbox input#posSearch2{
  scroll-margin-top:80px;
}


/* NIDFRAN POS 2.0 - Tienda móvil 2 columnas + menos cache visual */
@media (max-width: 760px){
  .nf-public-store .store2-main{
    padding-left:8px!important;
    padding-right:8px!important;
  }
  .nf-public-store .store2-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
    align-items:stretch!important;
  }
  .nf-public-store .store2-card{
    border-radius:15px!important;
    min-width:0!important;
    box-shadow:0 6px 14px rgba(80,42,22,.07)!important;
  }
  .nf-public-store .store2-img-wrap{
    height:136px!important;
    padding:7px!important;
    border-radius:0!important;
  }
  .nf-public-store .store2-img-wrap img{
    height:122px!important;
    max-height:122px!important;
    object-fit:contain!important;
  }
  .nf-public-store .store2-quick{
    width:34px!important;
    height:34px!important;
    right:7px!important;
    top:7px!important;
    border-radius:12px!important;
  }
  .nf-public-store .store2-quick .material-symbols-rounded{
    font-size:20px!important;
  }
  .nf-public-store .store2-card-body{
    padding:8px 8px 9px!important;
    gap:5px!important;
  }
  .nf-public-store .store2-card h3{
    font-size:.78rem!important;
    line-height:1.13!important;
    min-height:2.25em!important;
    margin:0!important;
    -webkit-line-clamp:2!important;
  }
  .nf-public-store .store2-card-body p{
    font-size:.62rem!important;
    line-height:1.15!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .nf-public-store .store2-card-body strong{
    font-size:.93rem!important;
    line-height:1.05!important;
  }
  .nf-public-store .store2-card-foot{
    grid-template-columns:1fr!important;
    gap:5px!important;
  }
  .nf-public-store .store2-stock{
    min-height:0!important;
    height:auto!important;
    justify-content:flex-start!important;
    font-size:.62rem!important;
    padding:3px 6px!important;
  }
  .nf-public-store .store2-add{
    width:100%!important;
    height:32px!important;
    min-height:32px!important;
    border-radius:11px!important;
    font-size:.68rem!important;
    padding:0 5px!important;
    justify-content:center!important;
  }
  .nf-public-store .store2-add .material-symbols-rounded{
    font-size:17px!important;
  }
  .nf-public-store .store2-section-title h2{
    font-size:.95rem!important;
  }
  .nf-public-store .store2-check,
  .nf-public-store .store2-count,
  .nf-public-store .store2-section-title .btn.ghost{
    font-size:.72rem!important;
    padding:7px 8px!important;
  }
}
@media (max-width: 390px){
  .nf-public-store .store2-grid{
    gap:8px!important;
  }
  .nf-public-store .store2-img-wrap{
    height:122px!important;
  }
  .nf-public-store .store2-img-wrap img{
    height:110px!important;
    max-height:110px!important;
  }
  .nf-public-store .store2-card h3{
    font-size:.72rem!important;
  }
  .nf-public-store .store2-card-body strong{
    font-size:.86rem!important;
  }
  .nf-public-store .store2-add{
    font-size:.62rem!important;
  }
}


/* NIDFRAN POS 2.0 - Productos auto sync y permiso stock */
.metric-card small{
  display:block;
  margin-top:4px;
  color:#7a5944;
  font-weight:700;
}
.product-import-tools .pill{
  white-space:nowrap;
}


/* NIDFRAN POS 2.0 - Productos sync menos agresivo */
.product-import-tools::after{
  content:"Auto-sync suave: cada 1 minuto si nadie está editando.";
  display:inline-flex;
  align-items:center;
  margin-left:8px;
  font-size:.72rem;
  color:#7a5944;
  font-weight:700;
}


/* NIDFRAN POS 2.0 - Fiscal notas con monto manual */
#noteTotal{
  font-weight:900!important;
  color:#8b3f16!important;
}
.fiscal-config-grid label:has(#noteTotal){
  background:#fff8ef!important;
  border-radius:14px!important;
  padding:8px!important;
}


/* NIDFRAN POS 2.0 - Notas fiscales manual DGII + devolución en caja */
.note-cash-row{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  background:#fff8ef!important;
  border:1px solid rgba(139,63,22,.18)!important;
  border-radius:14px!important;
  padding:10px 12px!important;
  font-weight:900!important;
  color:#7a3516!important;
}
.note-cash-row input{
  width:18px!important;
  height:18px!important;
}

/* NIDFRAN POS 2.0 - Restaurar reports.js syntax */


/* NIDFRAN POS 2.0 - Reimprimir cierres de caja */
.reprint-close-row{
  align-items:center!important;
}
.reprint-close-row .btn{
  min-width:190px;
}
@media (max-width:760px){
  .reprint-close-row{
    flex-direction:column!important;
    align-items:stretch!important;
  }
  .reprint-close-row .btn{
    width:100%;
  }
}

/* NIDFRAN POS 2.0 - E34 no doble devolucion */


/* NIDFRAN POS 2.0 - cierre con fondo próximo turno */
.cash-session-meta.fund-mode-note{
  background:#fff7ed;
  border:1px solid rgba(139,63,22,.2);
  border-radius:14px;
  padding:10px 12px;
}


/* Venta: búsqueda limitada a 10 y estable */
.sale-search-limit-note{
  position: sticky;
  top: 0;
  z-index: 2;
  background: rgba(255,248,241,.96);
  border: 1px solid rgba(139,63,22,.16);
  border-radius: 12px;
  padding: 7px 10px;
  margin: 0 0 8px;
  font-size: 12px;
  font-weight: 800;
  color: #7a3b19;
}


/* Venta rápida compacta: más espacio para productos y carrito */
.sale-topbar-compact{
  gap: 12px;
  align-items: center;
}
.sale-topbar-compact h2{
  margin-bottom: 0;
  white-space: nowrap;
}
.pos-status-pills .seller-pill b{
  font-weight: 900;
}
.sale-info-bar.pro-sale-info{
  display: grid;
  grid-template-columns: 1.25fr .8fr .85fr .9fr;
  gap: 8px;
  margin-bottom: 8px;
}
.sale-info-bar.pro-sale-info label{
  min-height: 68px;
  padding: 10px 12px;
}
.sale-info-bar.pro-sale-info label small{
  margin-top: 4px;
  line-height: 1.15;
}
.grid-pos{
  align-items: start;
  gap: 10px;
}
.grid-pos > .card{
  margin-top: 0;
}
.grid-pos > .card.cart{
  align-self: start;
}
#productList2{
  max-height: calc(100vh - 390px);
  overflow-y: auto;
  padding-right: 3px;
}
#cartItems2{
  min-height: 230px;
  max-height: calc(100vh - 485px);
  overflow-y: auto;
}
.cart-line{
  padding: 8px 10px;
}
.cart-line b{
  line-height: 1.1;
}
.cart-line .muted{
  font-size: 11px;
}
.cart-controls{
  gap: 4px;
}
.sale-discount-box{
  padding: 10px 12px;
  margin-top: 8px;
}
.sale-discount-box label{
  margin-bottom: 4px;
}
.pos-actions{
  margin-top: 10px;
}
.pos-actions .wide{
  min-height: 48px;
}
.sale-search-limit-note{
  padding: 6px 9px;
  margin-bottom: 6px;
  font-size: 11px;
}
@media (max-width: 1200px){
  .sale-info-bar.pro-sale-info{
    grid-template-columns: 1fr 1fr;
  }
  #productList2, #cartItems2{
    max-height: none;
  }
}


/* Venta: referencia/SKU visible y descuento más compacto */
.sale-ref-line{
  font-size: 11px;
  font-weight: 800;
  color: #7a4b35;
}
.sale-discount-box{
  padding: 8px 10px !important;
}
.sale-discount-box .pay-inline{
  gap: 6px;
}
.sale-discount-box input,
.sale-discount-box select{
  min-height: 36px;
}
#cartItems2{
  min-height: 260px;
}


/* Venta: carrito con espacio real para 3 líneas antes del descuento */
.grid-pos > .card.cart,
.card.cart{
  display: flex;
  flex-direction: column;
  min-height: calc(100vh - 275px);
}
.card.cart .card-title{
  flex: 0 0 auto;
}
#cartItems2{
  flex: 0 0 320px;
  min-height: 320px !important;
  max-height: 320px !important;
  overflow-y: auto;
  padding-right: 4px;
}
#cartItems2 .cart-line{
  min-height: 88px;
  padding: 8px 10px;
  margin-bottom: 7px;
}
#cartItems2 .cart-line b{
  font-size: 14px;
}
#cartItems2 .cart-line .muted{
  font-size: 10.5px;
}
.sale-discount-box{
  flex: 0 0 auto;
  margin-top: 7px !important;
  padding: 8px 10px !important;
}
.sale-discount-box label{
  font-size: 13px;
}
.sale-discount-box small{
  font-size: 11px;
}
.card.cart .totals,
.card.cart .pos-actions{
  flex: 0 0 auto;
}
.card.cart .totals div{
  margin: 3px 0;
}
.card.cart .grand,
.card.cart #grand2{
  line-height: 1;
}
@media (min-height: 950px){
  #cartItems2{
    flex-basis: 350px;
    min-height: 350px !important;
    max-height: 350px !important;
  }
}
@media (max-height: 820px){
  #cartItems2{
    flex-basis: 260px;
    min-height: 260px !important;
    max-height: 260px !important;
  }
  #cartItems2 .cart-line{
    min-height: 78px;
    padding: 6px 8px;
  }
}
