:root{
  --bg:#EEF1F6; --card:#FFFFFF; --ink:#1F2430; --dim:#6B7386; --line:#E1E5EC;
  --azul:#3B5BA9; --azul-bg:#E7ECF7;
  --rojo:#C23B32; --rojo-bg:#FBEAE8; --verde:#1F8A5B; --verde-bg:#E6F4ED;
  --mostaza:#B8892F; --mostaza-bg:#F6EEDD;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent;}
body{background:var(--bg);color:var(--ink);font-family:'Work Sans',system-ui,sans-serif;min-height:100vh;}
button,input,select{font-family:inherit;}
.mono{font-family:'Roboto Mono',monospace;font-variant-numeric:tabular-nums;}
.hidden{display:none!important;}
.app{max-width:960px;margin:0 auto;min-height:100vh;display:flex;}

/* Navegación lateral en escritorio; en celular se abre como panel. */
.sidebar{width:220px;flex-shrink:0;background:var(--card);border-right:1px solid var(--line);padding:18px 12px;}
.sidebar h1{font-size:16px;font-weight:700;padding:0 8px 16px;color:var(--ink);}
.menu-item{width:100%;display:flex;align-items:center;gap:10px;text-align:left;padding:11px 10px;border-radius:9px;border:none;background:none;color:var(--dim);font-size:13.5px;font-weight:600;margin-bottom:2px;}
.menu-item.on{background:var(--azul-bg);color:var(--azul);}
.menu-ic{font-size:15px;width:20px;text-align:center;}

.main{flex:1;min-width:0;}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:18px 22px;border-bottom:1px solid var(--line);background:var(--card);}
.topbar h2{font-size:17px;font-weight:700;color:var(--ink);}
.btn-config{margin-left:auto;border:1px solid var(--line);border-radius:9px;background:var(--card);padding:9px 11px;font-size:17px;}
.btn-menu-movil,.menu-close,.menu-settings{display:none;}
.btn-azul{background:var(--azul);color:#fff;border:none;padding:10px 16px;border-radius:9px;font-weight:600;font-size:13.5px;}
.contenido{padding:20px 22px;}
.cargando{color:var(--dim);font-size:13.5px;}

/* piezas reutilizables por los módulos */
.tabla-wrap{background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:14px;}
.tabla-h{display:grid;grid-template-columns:1fr auto;padding:9px 14px;background:var(--bg);font-size:10px;font-weight:600;color:var(--dim);text-transform:uppercase;letter-spacing:.04em;}
.fila{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:12px 14px;border-top:1px solid var(--line);background:none;border-left:none;border-right:none;border-bottom:none;width:100%;text-align:left;cursor:pointer;}
.fila .t{font-size:13.5px;font-weight:600;color:var(--ink);display:block;}
.fila .s{font-size:10.5px;color:var(--dim);margin-top:1px;display:block;}
.fila .v{font-size:14px;font-weight:600;text-align:right;color:var(--ink);}
.fila .v.pos{color:var(--verde);} .fila .v.neg{color:var(--rojo);}
.vacio{padding:26px;text-align:center;color:var(--dim);font-size:13px;}

.cpo{margin-bottom:11px;}
.cpo label{display:block;font-size:11px;color:var(--dim);margin-bottom:4px;font-weight:500;}
.cpo input,.cpo select{width:100%;background:var(--card);border:1px solid var(--line);border-radius:9px;padding:11px 12px;font-size:14.5px;color:var(--ink);outline:none;}

#toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,8px);background:var(--ink);color:#fff;padding:12px 18px;border-radius:10px;font-size:13px;font-weight:600;opacity:0;transition:.25s;z-index:80;pointer-events:none;}
#toast.on{opacity:1;transform:translate(-50%,0);}
#toast.error{background:var(--rojo);}
#busy{position:fixed;inset:0;background:rgba(20,22,30,.35);display:flex;align-items:center;justify-content:center;z-index:90;}
#busy div{background:#fff;padding:14px 20px;border-radius:12px;font-weight:600;font-size:13.5px;}

/* hoja de acciones desde abajo */
.overlay{position:fixed;inset:0;background:rgba(20,22,30,.45);display:none;align-items:flex-end;justify-content:center;z-index:70;}
.overlay.on{display:flex;}
.sheet{width:100%;max-width:460px;background:var(--card);border-radius:16px 16px 0 0;padding:8px 18px 20px;max-height:85vh;overflow-y:auto;}
.grab{width:36px;height:4px;background:var(--line);border-radius:4px;margin:6px auto 14px;}
.sheet h3{font-size:15px;font-weight:700;margin-bottom:2px;color:var(--ink);}
.sheet p{font-size:12.5px;color:var(--dim);margin-bottom:12px;}
.sheet-btn{width:100%;display:flex;align-items:center;gap:10px;padding:13px 14px;border-radius:9px;background:var(--bg);border:none;font-size:13.5px;font-weight:600;margin-bottom:8px;color:var(--ink);text-align:left;}
.sheet-btn.danger{background:var(--rojo-bg);color:var(--rojo);}
.sheet-btn.primary{background:var(--azul);color:#fff;}

/* formulario de registro */
.total-pill{background:var(--azul-bg);border-radius:12px;padding:15px 16px;text-align:center;margin-bottom:14px;}
.total-pill .lbl{font-size:10.5px;color:var(--azul);text-transform:uppercase;letter-spacing:.04em;}
.total-pill .n{font-family:'Roboto Mono',monospace;font-size:24px;font-weight:700;color:var(--ink);display:block;}
.total-pill .sub{font-size:11px;color:var(--azul);margin-top:3px;}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:9px;}
.chips{display:flex;gap:7px;flex-wrap:wrap;margin:4px 0 10px;}
.chips button{background:var(--card);border:1px solid var(--line);border-radius:999px;padding:8px 14px;font-size:12px;font-weight:600;color:var(--dim);}
.chips button.on{background:var(--azul);border-color:var(--azul);color:#fff;}
.btn-guardar{width:100%;background:var(--ink);color:#fff;border:none;padding:14px;border-radius:9px;font-weight:700;font-size:14px;margin-top:8px;}
.campo-solo-lectura{background:var(--bg)!important;color:var(--dim);}
.signo-btn{width:46px;flex-shrink:0;border-radius:9px;border:1px solid var(--line);font-size:18px;font-weight:800;background:var(--card);}

/* tabla de compras agrupada por lote */
.lote-card{background:var(--card);border:1px solid var(--line);border-radius:10px;margin-bottom:10px;overflow:hidden;}
.lote-head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 14px;background:none;border:none;text-align:left;}
.lote-info{display:flex;flex-direction:column;gap:2px;}
.lote-nombre{font-size:14px;font-weight:700;color:var(--ink);display:flex;align-items:center;gap:8px;}
.lote-sub{font-size:11px;color:var(--dim);}
.lote-der{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.lote-valor{font-size:14.5px;font-weight:700;color:var(--ink);}
.lote-chevron{color:var(--dim);font-size:13px;}
.tag{font-size:10.5px;font-weight:700;padding:2px 9px;border-radius:999px;}
.tag-verde{background:var(--verde-bg);color:var(--verde);}
.tag-rojo{background:var(--rojo-bg);color:var(--rojo);}
.lote-detalle{border-top:1px solid var(--line);background:var(--bg);}
.fila-compra{width:100%;display:grid;grid-template-columns:52px 1fr auto;gap:10px;align-items:center;padding:11px 14px;background:none;border:none;border-top:1px solid var(--line);text-align:left;}
.fila-compra:first-child{border-top:none;}
.fc-fecha{font-size:11px;color:var(--dim);}
.fc-info .t{font-size:13px;font-weight:600;color:var(--ink);display:block;}
.fc-info .s{font-size:10.5px;color:var(--dim);display:block;margin-top:1px;}
.fc-valor{font-size:13.5px;font-weight:700;color:var(--ink);}

/* En celular, el menú se abre desde el botón visible de la barra superior. */
@media (max-width:720px){
  .app{flex-direction:column;}
  .main{order:1;}
}

.sec{font-size:11px;font-weight:700;color:var(--dim);text-transform:uppercase;letter-spacing:.05em;margin:18px 2px 8px;}
.fila .v small{display:block;font-size:10.5px;font-weight:600;margin-top:1px;}
.fila .v small.pos{color:var(--verde);} .fila .v small.neg{color:var(--rojo);}
.res2{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:12px;}
.res2 .total-pill{margin-bottom:0;}
.kv{display:flex;justify-content:space-between;gap:10px;padding:6px 0;font-size:13px;color:var(--ink);}
.kv span:first-child{color:var(--dim);}
.kv b.pos{color:var(--verde);} .kv b.neg{color:var(--rojo);}
.lv-opcion{width:100%;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 12px;background:var(--card);border:1px solid var(--line);border-radius:9px;margin-bottom:7px;text-align:left;font-size:13px;color:var(--ink);}
.lv-opcion.on{border-color:var(--azul);background:var(--azul-bg);}
.lv-opcion small{display:block;font-size:10.5px;color:var(--dim);margin-top:1px;}

/* ---- botones: manito, color al pasar el mouse y al presionar ---- */
button{cursor:pointer;user-select:none;-webkit-user-select:none;transition:background .15s,border-color .15s,color .15s,transform .05s,filter .15s;}
button:active{transform:scale(.98);}
.btn-azul:hover,.sheet-btn.primary:hover{filter:brightness(1.12);}
.btn-azul:active,.sheet-btn.primary:active{filter:brightness(.9);}
.btn-guardar:hover{filter:brightness(1.25);}
.menu-item:hover{background:var(--bg);color:var(--ink);}
.menu-item.on:hover{background:var(--azul-bg);color:var(--azul);}
.sheet-btn:hover{filter:brightness(.96);}
.sheet-btn.danger:hover{background:#F6D9D5;}
.fila:hover,.fila-compra:hover,.lote-head:hover{background:#F4F6FA;}
.lote-detalle .fila-compra:hover{background:#E4E9F1;}
.chips button:hover{border-color:var(--azul);color:var(--azul);}
.chips button.on:hover{color:#fff;filter:brightness(1.1);}
.signo-btn:hover{border-color:var(--azul);background:var(--azul-bg);}
.lv-opcion:hover{border-color:var(--azul);}
.fila:active,.fila-compra:active,.lote-head:active{background:var(--azul-bg);}

.chk{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--ink);margin-bottom:12px;cursor:pointer;}
.chk input{width:18px;height:18px;accent-color:var(--azul);}
.hint{font-size:11.5px;color:var(--dim);margin-top:5px;line-height:1.4;}

.const-tabs{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:12px;}
.k-btn{border-radius:10px;padding:10px 12px;text-align:left;border:2px solid;background:var(--card);display:flex;flex-direction:column;gap:1px;font-size:11px;font-weight:600;}
.k-btn b{font-family:'Roboto Mono',monospace;font-size:22px;}
.k-btn small{font-size:10.5px;font-weight:600;}
.k-verde{border-color:var(--verde);color:var(--verde);} .k-verde.on{background:var(--verde);color:#fff;}
.k-rojo{border-color:var(--rojo);color:var(--rojo);} .k-rojo.on{background:var(--rojo);color:#fff;}
.tab-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border-radius:999px;border:1px dashed var(--dim);background:var(--card);font-size:12px;font-weight:600;color:var(--dim);margin:0 0 10px;}
.tab-chip.on{border:1px solid var(--azul);color:var(--azul);background:var(--azul-bg);}
.tab-chip small{font-weight:500;}
.tab-chip:hover{border-color:var(--azul);color:var(--azul);}

/* buscador y barra de herramientas */
.buscador{width:100%;background:var(--card);border:1px solid var(--line);border-radius:9px;padding:11px 12px;font-size:14px;color:var(--ink);outline:none;margin-bottom:12px;}
.toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px;}
.toolbar button{background:var(--card);border:1px solid var(--line);border-radius:9px;padding:8px 13px;font-size:12.5px;font-weight:600;color:var(--ink);}
.toolbar button.danger{color:var(--rojo);}
.ca-select-row{display:grid;grid-template-columns:34px 1fr;align-items:center;border-top:1px solid var(--line);background:var(--card);}
.ca-select-row>input{width:19px;height:19px;margin:auto;accent-color:var(--azul);}
.ca-select-row .fila{border-top:0;}
/* tarjetas de cajas */
.cj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:9px;margin-bottom:14px;}
.cj-card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:11px 12px;text-align:left;display:flex;flex-direction:column;gap:7px;color:var(--ink);}
.cj-card:hover{border-color:var(--azul);}
.cj-top{display:flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;color:var(--dim);}
.cj-ic{width:22px;height:22px;border-radius:7px;background:var(--azul-bg);display:grid;place-items:center;font-size:11px;}
.cj-val{font-family:'Roboto Mono',monospace;font-size:16px;font-weight:700;color:var(--ink);}
.cj-val small{font-family:'Work Sans',sans-serif;font-size:10.5px;color:var(--dim);font-weight:600;}
.cj-val.neg{color:var(--rojo);}
.cj-total{grid-column:1/-1;background:var(--ink);border-color:var(--ink);cursor:default;}
.cj-total .cj-top{color:#9AA2B6;} .cj-total .cj-val{color:#fff;font-size:20px;}
.cj-total:hover{border-color:var(--ink);}
.rt-wrap{background:var(--card);border:1px solid var(--line);border-radius:10px;overflow-x:auto;margin-bottom:14px;}
table.rt{width:100%;border-collapse:collapse;font-size:12.5px;}
table.rt th{background:var(--bg);font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--dim);text-align:right;padding:9px 10px;font-weight:600;}
table.rt td{padding:9px 10px;border-top:1px solid var(--line);text-align:right;color:var(--ink);white-space:nowrap;}
table.rt th:nth-child(1),table.rt th:nth-child(2),table.rt td:nth-child(1),table.rt td:nth-child(2){text-align:left;}
table.rt td:nth-child(2){white-space:normal;min-width:150px;}
table.rt td.pos{color:var(--verde);font-weight:600;} table.rt td.neg{color:var(--rojo);font-weight:600;}
table.rt tbody tr{cursor:pointer;} table.rt tbody tr:hover{background:#F4F6FA;}
table.rt tfoot td{font-weight:700;background:var(--bg);}
.fechas{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:10px;}
/* editor reutilizable de pagos divididos */
.pay-box{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:10px 11px;margin:8px 0 12px;}
.pay-mode{display:flex;gap:7px;margin:4px 0 9px;}
.pay-mode button{flex:1;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:9px 8px;font-size:11.5px;font-weight:700;color:var(--dim);}
.pay-mode button.on{background:var(--azul);border-color:var(--azul);color:#fff;}
.pay-rows{display:flex;flex-direction:column;gap:7px;}
.pay-row{display:grid;grid-template-columns:1fr 132px 32px;gap:7px;align-items:center;}
.pay-row .cf{width:100%;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:9px 10px;font-size:13px;color:var(--ink);outline:none;}
.pay-remove{height:38px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--rojo);font-size:21px;font-weight:700;}
.pay-foot{display:flex;align-items:center;justify-content:flex-end;gap:8px;border-top:1px solid var(--line);margin-top:9px;padding-top:9px;font-size:11px;color:var(--dim);}
.pay-foot b{font-family:'Roboto Mono',monospace;font-size:13px;color:var(--ink);}
.pay-rest.ok{color:var(--verde);font-weight:700;margin-left:4px;}
.pay-rest.bad{color:var(--rojo);font-weight:700;margin-left:4px;}
.pay-rows + .sheet-btn{margin-top:8px;}
@media (max-width:500px){
  .pay-row{grid-template-columns:1fr 112px 32px;}
}


.cj-card.fija{cursor:default;} .cj-card.fija:hover{border-color:var(--line);}
.cj-val.pos{color:var(--verde);}
/* vista previa de impresión */
.prev{margin:8px 0;border:1px solid var(--line);border-radius:10px;background:#E9ECF2;overflow:hidden;}
.prev iframe{border:0;background:#fff;display:block;}
.prev-pos{padding:10px;max-height:340px;overflow:auto;display:flex;justify-content:center;} .prev-pos iframe{box-shadow:0 1px 6px rgba(0,0,0,.2);flex-shrink:0;}
.prev-pdf{width:326px;height:423px;margin:8px auto;} .prev-pdf iframe{transform:scale(.4);transform-origin:0 0;}
/* selección de compras para imprimir */
.lote-headrow{display:flex;align-items:center;} .lote-headrow .chk-l{margin:0 0 0 14px;width:18px;height:18px;accent-color:var(--azul);flex-shrink:0;} .lote-headrow .lote-head{flex:1;}
.fila-compra.sel{grid-template-columns:24px 52px 1fr auto;cursor:pointer;} .fila-compra.sel input{width:18px;height:18px;accent-color:var(--azul);}
.fila-compra.marcada{background:var(--azul-bg)!important;}
.selbar{position:sticky;bottom:12px;display:flex;justify-content:space-between;align-items:center;gap:10px;background:var(--ink);color:#fff;border-radius:12px;padding:11px 14px;margin-top:12px;box-shadow:0 6px 20px rgba(20,22,30,.3);z-index:15;}
.selbar span{font-size:12.5px;} .selbar button{background:#fff;color:var(--ink);border:none;border-radius:8px;padding:8px 14px;font-weight:700;font-size:13px;} .selbar button:disabled{opacity:.4;cursor:not-allowed;}
.toolbar button.on{background:var(--azul);color:#fff;border-color:var(--azul);}
@media (max-width:720px){ .selbar{bottom:12px;} }

/* gravamen bancario y envío */
.grav-box{border:1px dashed var(--line);border-radius:10px;padding:10px 12px;margin:10px 0;}
.linkbtn{background:none;border:none;color:var(--azul);font-size:12px;font-weight:700;padding:0;text-decoration:underline;text-underline-offset:2px;}
.menu-group{margin:5px 0 12px;}
.menu-group summary{padding:8px 10px;color:var(--dim);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;}
.menu-group summary::-webkit-details-marker{display:none;}
.menu-group summary::after{content:'⌄';font-size:14px;transition:transform .15s;}
.menu-group:not([open]) summary::after{transform:rotate(-90deg);}
.menu-group-items{display:flex;flex-direction:column;}
.worker-card,.settings-card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:15px;margin-bottom:12px;}
.worker-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;}
.worker-head span{font-size:11px;color:var(--verde);font-weight:700;}
.worker-card p,.settings-card p{font-size:13px;line-height:1.5;margin:6px 0 10px;}
.worker-log{display:flex;justify-content:space-between;gap:12px;padding:11px;background:var(--card);border-top:1px solid var(--line);font-size:12px;}
.worker-log span{color:var(--dim);}
.settings-card{max-width:650px;margin:12px auto;padding:22px;}
.settings-card h3{font-size:18px;margin:3px 0 12px;}
.settings-icon{font-size:25px;}
.settings-danger-note{padding:12px;border-radius:9px;background:var(--rojo-bg);color:var(--rojo);}
.pin-gate{position:fixed;inset:0;z-index:95;display:grid;place-items:center;padding:20px;background:linear-gradient(145deg,#eef1f6,#dfe5f1);}
.pin-card{width:min(100%,390px);background:var(--card);border:1px solid var(--line);border-radius:18px;padding:26px 22px;box-shadow:0 14px 40px #1f24301a;}
.pin-logo{font-size:32px;margin-bottom:10px;}
.pin-card h1{font-size:22px;margin-bottom:8px;}
.pin-card p{color:var(--dim);font-size:13px;line-height:1.45;margin:8px 0 18px;}
.pin-card>label{display:block;font-size:12px;font-weight:700;color:var(--dim);margin-bottom:5px;}
.pin-card>input{width:100%;height:52px;border:1px solid var(--line);border-radius:10px;text-align:center;font-size:24px;letter-spacing:.35em;}
.pin-error{min-height:18px;color:var(--rojo)!important;margin:8px 0 0!important;font-weight:600;}
.btn-salir{flex:0 0 auto;padding:8px 9px;border:1px solid var(--line);border-radius:9px;background:var(--card);font-size:15px;}
.perm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));gap:6px;margin:6px 0 14px;}
.perm-option{display:flex;align-items:center;gap:8px;min-width:0;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:var(--card);font-size:12px;font-weight:600;}
.perm-option input{width:17px;height:17px;accent-color:var(--azul);flex:0 0 auto;}
.perm-row{display:grid;grid-template-columns:minmax(140px,1fr) minmax(95px,145px);align-items:center;gap:8px;margin:6px 0;}
.perm-amount{width:100%;min-width:0;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:10px;font-size:12px;}
.lot-capacity{font-size:10px;color:var(--dim);text-align:right;}
@media(max-width:720px){
  .topbar{gap:7px;padding:12px;}
  .topbar h2{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px;}
  .btn-menu-movil{display:inline-flex;align-items:center;justify-content:center;gap:5px;flex:0 0 auto;padding:9px 10px;border:1px solid var(--line);border-radius:9px;background:var(--card);color:var(--ink);font-size:12px;font-weight:700;}
  .btn-config{flex:0 0 auto;margin-left:0;padding:8px 9px;}
  .btn-salir{padding:8px 8px;}
  #btnNuevo{flex:0 0 auto;padding:9px 11px;font-size:12px;}
  .sidebar{display:none;position:fixed;inset:0;z-index:100;width:100%;height:100vh;height:100dvh;overflow-y:auto;overflow-x:hidden;padding:18px 14px calc(24px + env(safe-area-inset-bottom));background:var(--card);border:0;}
  .sidebar.mobile-open{display:block!important;}
  .menu-brand{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:3px 2px 16px;border-bottom:1px solid var(--line);margin-bottom:10px;}
  .sidebar .menu-brand h1{display:block;padding:0;font-size:18px;}
  .menu-brand-actions{display:flex;align-items:center;gap:7px;}
  .menu-settings{display:inline-flex;align-items:center;min-height:40px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:var(--card);font-size:12px;font-weight:700;}
  .menu-close{display:inline-grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:10px;background:var(--bg);font-size:17px;}
  .menu-group{margin:8px 0;border:1px solid var(--line);border-radius:12px;overflow:hidden;}
  .menu-group summary{padding:13px 14px;background:var(--bg);font-size:12px;}
  .menu-group-items,.menu-group[open] .menu-group-items{position:static;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:7px;max-height:none;overflow:visible;border:0;border-radius:0;box-shadow:none;}
  .menu-item{flex-direction:row;justify-content:flex-start;gap:8px;min-width:0;margin:0;padding:11px 9px;text-align:left;font-size:12px;}
  .menu-ic{flex:0 0 20px;font-size:16px;}
  body.menu-movil-abierto{overflow:hidden;}
  .perm-row{grid-template-columns:minmax(0,1fr) minmax(100px,125px);}
  .perm-option{padding:8px;font-size:11px;}
}

/* Módulo Productos */
.prod-hero{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;background:linear-gradient(135deg,#24365f,#3b5ba9);color:#fff;border-radius:14px;padding:18px;margin-bottom:16px}
.prod-hero h3{font-size:22px;margin:4px 0}.prod-hero p{font-size:12px;opacity:.84;line-height:1.4}.prod-kicker{font-size:9px;letter-spacing:.13em;font-weight:700;opacity:.78}
.prod-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.prod-actions button{border:1px solid #ffffff55;background:#ffffff16;color:#fff;border-radius:9px;padding:9px 11px;font-size:11.5px;font-weight:700}.prod-actions button.primary{background:#fff;color:#29427f}
.prod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(175px,1fr));gap:10px;margin-bottom:20px}.prod-card{display:flex;flex-direction:column;align-items:flex-start;gap:5px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:14px;text-align:left;color:var(--ink);min-height:132px}.prod-card:hover{border-color:var(--azul);transform:translateY(-1px)}.prod-card b{font-size:14px}.prod-card>span:not(.prod-cat),.prod-card small{font-size:10.5px;color:var(--dim)}.prod-card strong{font-size:13px;color:var(--verde);margin-top:4px}.prod-cat{font-size:9px;font-weight:700;color:var(--azul);background:var(--azul-bg);border-radius:999px;padding:3px 8px}
.prod-line-extra{border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:10px;margin:10px 0}
@media(max-width:600px){.prod-hero{display:block}.prod-actions{justify-content:flex-start;margin-top:13px}.prod-actions button{flex:1 1 42%}.prod-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.prod-card{padding:11px;min-height:125px}}

/* App instalada: respetar la barra de estado del celular */
body{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}

/* Ventana de impresión: título arriba con compartir, botones fijos abajo */
.im-cab{position:sticky;top:-8px;z-index:2;background:var(--card);display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 0}
.im-ico{width:48px;height:48px;border-radius:50%;border:none;background:var(--azul);color:#fff;font-size:22px;box-shadow:0 4px 12px rgba(0,0,0,.18)}
.im-barra{position:sticky;bottom:-20px;z-index:2;display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:8px;background:var(--card);padding:10px 0 20px;margin-top:8px;border-top:1px solid var(--line)}
.im-b{display:flex;flex-direction:column;align-items:center;gap:2px;border:1px solid var(--line);background:var(--bg);border-radius:14px;padding:8px 4px;font-weight:700;font-size:13px;color:var(--ink)}
.im-b span{font-size:20px}.im-b.pri{background:var(--azul);color:#fff;border:none}
/* Nuevo análisis con cada constante */
.btn-verde{background:#1E8A5A!important;color:#fff!important;border:none!important}
.btn-amarillo{background:#F2C200!important;color:#2A2200!important;border:none!important}
.k-marca{height:6px;border-radius:3px;margin:-4px 0 10px}
/* Autocompletar terceros */
.ac-lista{position:fixed;z-index:9999;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 28px rgba(0,0,0,.18);max-height:260px;overflow:auto}
.ac-lista button{display:block;width:100%;text-align:left;border:none;background:none;padding:11px 14px;border-bottom:1px solid var(--line);font-size:15px;color:var(--ink)}
.ac-lista button small{display:block;color:var(--dim);font-size:12px}
.ac-lista button.on,.ac-lista button:hover{background:var(--azul-bg)}

/* =====================================================================
   TEMA MODERNO AURUM (v16) — azul profundo con degradado, dorado de acento,
   tarjetas redondeadas. Va al final para sobrescribir lo anterior.
   ===================================================================== */
:root{
  --bg:#F3F5FA; --card:#FFFFFF; --ink:#14213D; --dim:#6B7690; --line:#E3E8F2;
  --azul:#1D4E9E; --azul-bg:rgba(29,78,158,.08); --azul-osc:#0E2A5C;
  --oro:#D4AF37; --oro2:#F3D77A;
  --grad:linear-gradient(150deg,#0E2A5C 0%,#1D4E9E 100%);
  --sombra:0 8px 24px rgba(14,42,92,.08);
}
body{font-family:'Plus Jakarta Sans','Work Sans',system-ui,sans-serif;background:var(--bg);}
.mono,.total-pill .n{font-family:'Plus Jakarta Sans',system-ui,sans-serif;font-variant-numeric:tabular-nums;font-weight:800;}

/* barra superior con degradado */
.topbar{background:var(--grad);color:#fff;border:none;border-radius:0 0 24px 24px;padding:14px 16px;gap:8px;position:sticky;top:0;z-index:30;box-shadow:0 6px 18px rgba(14,42,92,.18);}
.topbar h2{color:#fff;font-size:18px;font-weight:800;}
.topbar .btn-config,.topbar .btn-salir,.topbar .btn-menu-movil{background:rgba(255,255,255,.14)!important;border:none!important;color:#fff!important;border-radius:14px!important;min-width:42px;height:42px;font-size:17px;}
.topbar .btn-azul,.topbar .btn-nuevo-extra{background:linear-gradient(150deg,var(--oro2),var(--oro));color:var(--azul-osc);border-radius:14px;font-weight:800;height:42px;padding:0 14px;border:none;box-shadow:0 4px 12px rgba(212,175,55,.35);}
.topbar .btn-verde{background:#1E8A5A!important;color:#fff!important;box-shadow:none}
.topbar .btn-amarillo{background:#F2C200!important;color:#2A2200!important;box-shadow:none}
.contenido{padding:16px 16px 110px;}

/* tarjetas y listas */
.tabla-wrap{border-radius:20px;border:1px solid var(--line);box-shadow:var(--sombra);}
.tabla-h{background:transparent;border-bottom:1px solid var(--line);padding:12px 16px;}
.fila{padding:14px 16px;}
.fila .t{font-size:14.5px;font-weight:700;}
.fila .s{font-size:12px;margin-top:2px;}
.fila .v{font-size:15px;font-weight:800;}
.total-pill{background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:var(--sombra);padding:16px;}
.total-pill .lbl{color:var(--dim);font-weight:700;}
.total-pill .sub{color:var(--dim);}
.sec{font-size:12px;font-weight:800;color:var(--dim);margin:20px 4px 10px;}
.kv{font-size:14px;padding:8px 0;border-bottom:1px solid var(--line);}

/* botones y campos */
.btn-azul,.sheet-btn.primary{background:var(--grad);color:#fff;border:none;box-shadow:0 8px 20px rgba(29,78,158,.25);}
.sheet{border-radius:26px 26px 0 0;padding:10px 18px 22px;max-width:520px;}
.sheet h3{font-size:19px;font-weight:800;}
.sheet-btn{border-radius:16px;padding:15px 16px;font-size:14.5px;font-weight:700;}
.chips button{padding:10px 16px;font-size:13px;font-weight:700;}
.chips button.on{background:var(--grad);border-color:transparent;}
.toolbar button{border-radius:14px;padding:10px 14px;font-size:13px;font-weight:700;}
.toolbar button.on{background:var(--grad);border-color:transparent;}
.cpo label{font-size:12.5px;font-weight:700;margin:0 0 6px 4px;}
.cpo input,.cpo select,.cpo textarea,.cf{border-radius:14px!important;min-height:50px;font-size:15.5px!important;}
.signo-btn{border-radius:14px;}
.pay-mode button{border-radius:12px;padding:11px 8px;font-size:12.5px;}
.pay-mode button.on{background:var(--grad);border-color:transparent;}

/* ingreso con PIN */
.pin-gate{background:var(--bg);display:block;padding:0;overflow:auto;}
.pin-gate::before{content:"";position:absolute;left:0;right:0;top:0;height:44vh;background:var(--grad);border-radius:0 0 36px 36px;}
.pin-card{position:relative;margin:calc(14vh) auto 30px;width:min(92%,400px);border-radius:26px;text-align:center;box-shadow:0 18px 40px rgba(14,42,92,.18);}
.moneda-logo{width:84px;height:84px;margin:-70px auto 10px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--oro2),var(--oro) 60%,#A8841F);display:grid;place-items:center;color:var(--azul-osc);font-weight:800;font-size:40px;box-shadow:0 8px 22px rgba(0,0,0,.25);}
.pin-card>input{border-radius:16px;letter-spacing:.5em;}
.pin-teclado{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0 6px;}
.pin-teclado button{height:60px;border-radius:18px;border:1px solid var(--line);background:var(--bg);font-size:24px;font-weight:700;color:var(--ink);}
.pin-teclado button:active{background:var(--azul-bg);}
.btn-guardar{border-radius:16px!important;}

/* menú lateral tipo app */
.menu-perfil{display:flex;align-items:center;gap:12px;padding:6px 6px 14px;border-bottom:1px solid var(--line);margin-bottom:6px;text-align:left}
.menu-perfil .moneda{width:48px;height:48px;border-radius:50%;flex:none;background:radial-gradient(circle at 35% 30%,var(--oro2),var(--oro) 60%,#A8841F);display:grid;place-items:center;color:var(--azul-osc);font-weight:800;font-size:22px;}
.menu-perfil b{display:block;font-size:16px;color:var(--ink)}.menu-perfil small{color:var(--dim);font-size:12px}
.menu-perfil .chip-oro{display:inline-block;margin-top:3px;font-size:10.5px;font-weight:800;color:#7A5C00;background:#FFF1C2;border-radius:999px;padding:2px 8px}
.menu-item{color:var(--ink);font-size:14.5px;padding:9px 8px;border-radius:14px;}
.menu-item .menu-ic{width:36px;height:36px;border-radius:12px;display:grid;place-items:center;background:var(--bg);font-size:16px;flex:none;}
.menu-item::after{content:"›";margin-left:auto;color:var(--dim);font-size:19px;}
.menu-item.on{background:var(--azul-bg);color:var(--azul);}
.menu-item.on .menu-ic{background:var(--grad);color:#fff;}
.menu-group summary{font-size:11px;}
.menu-fav{width:100%;margin-top:10px;border:1px dashed var(--line);background:none;border-radius:14px;padding:11px;font-weight:700;color:var(--dim);}
@media (max-width:720px){
  .sidebar{width:min(320px,86%)!important;right:auto!important;box-shadow:12px 0 40px rgba(0,0,0,.25);border-radius:0 24px 24px 0;}
  body.menu-movil-abierto::before{content:"";position:fixed;inset:0;background:rgba(5,12,30,.5);z-index:99;}
  .topbar .btn-menu-movil span{display:none;}
}

/* barra fija inferior */
.nav-inf{display:none;}
@media (max-width:720px){
  .nav-inf{display:grid;position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom,0px));z-index:60;background:var(--card);border:1px solid var(--line);border-radius:22px;box-shadow:0 10px 30px rgba(14,42,92,.18);grid-template-columns:repeat(5,1fr);padding:6px;}
  .nav-inf button{border:none;background:none;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0;font-size:11px;font-weight:700;color:var(--dim);border-radius:16px;min-width:0;}
  .nav-inf button span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
  .nav-inf button i{font-style:normal;font-size:19px;}
  .nav-inf button.on{color:var(--azul);background:var(--azul-bg);}
  .nav-inf .centro i{width:48px;height:48px;margin-top:-26px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(150deg,var(--oro2),var(--oro));color:var(--azul-osc);box-shadow:0 6px 16px rgba(212,175,55,.5);font-size:26px;}
  #toast{bottom:96px;}
}

/* forma de pago y cuentas en pantalla aparte */
.pp-resumen{display:flex;align-items:center;gap:12px;width:100%;border:1px solid var(--line);background:var(--card);border-radius:18px;padding:14px;text-align:left;margin:6px 0 12px;box-shadow:var(--sombra);color:var(--ink);}
.pp-resumen i{font-style:normal;width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:var(--azul-bg);font-size:20px;flex:none;}
.pp-resumen span{flex:1;min-width:0}.pp-resumen small{display:block;color:var(--dim);font-size:12px;font-weight:600}.pp-resumen b{display:block;font-size:15px}
.pp-resumen .falta{color:var(--rojo)}
.pp-resumen::after{content:"›";font-size:22px;color:var(--dim)}
.pp-panel{position:fixed;inset:0;z-index:120;background:var(--bg);display:flex;flex-direction:column;}
.pp-panel.pp-sub{z-index:130;}
.pp-cab{display:flex;align-items:center;gap:10px;background:var(--grad);color:#fff;padding:calc(12px + env(safe-area-inset-top,0px)) 14px 14px;border-radius:0 0 22px 22px;}
.pp-cab b{font-size:18px;font-weight:800}
.pp-volver{width:42px;height:42px;border-radius:14px;border:none;background:rgba(255,255,255,.16);color:#fff;font-size:20px;}
.pp-cuerpo{flex:1;overflow:auto;padding:16px;}
.pp-cuerpo .pay-box{background:var(--card);border-radius:20px;}
.pp-pie{padding:10px 16px calc(14px + env(safe-area-inset-bottom,0px));background:var(--bg);}
.pp-pie button{width:100%;height:56px;border:none;border-radius:18px;background:var(--grad);color:#fff;font-weight:800;font-size:16px;box-shadow:0 8px 20px rgba(29,78,158,.3);}

/* inicio */
.in-hero{background:var(--grad);color:#fff;border-radius:24px;padding:18px;margin-bottom:14px;position:relative;overflow:hidden;box-shadow:0 12px 28px rgba(14,42,92,.22);}
.in-hero::after{content:"";position:absolute;right:-50px;top:-60px;width:190px;height:190px;border-radius:50%;background:radial-gradient(circle,rgba(212,175,55,.38),transparent 70%);}
.in-hero small{opacity:.8;font-size:13px}.in-hero h3{font-size:22px;margin:2px 0 14px;font-weight:800}
.in-tot{display:grid;grid-template-columns:1fr 1fr;gap:12px;position:relative;z-index:1}
.in-tot div{background:rgba(255,255,255,.1);border-radius:16px;padding:10px 12px}
.in-tot span{display:block;font-size:11.5px;opacity:.8;font-weight:600}.in-tot b{display:block;font-size:17px;font-weight:800;margin-top:2px}
.in-tot .oro b{color:var(--oro2)}
.in-acc{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:6px}
.in-acc button{border:1px solid var(--line);background:var(--card);border-radius:18px;padding:12px 4px;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12px;font-weight:700;color:var(--ink)}
.in-acc i{font-style:normal;width:44px;height:44px;border-radius:14px;display:grid;place-items:center;font-size:19px;background:var(--grad);color:#fff}
.in-acc .oro i{background:linear-gradient(150deg,var(--oro2),var(--oro));color:var(--azul-osc)}
.in-mov{display:flex;align-items:center;gap:12px;padding:12px 16px;border-top:1px solid var(--line);width:100%;background:none;border-left:none;border-right:none;border-bottom:none;text-align:left;color:var(--ink)}
.in-mov:first-child{border-top:none}
.in-mov .av{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-weight:800;font-size:13px;flex:none}
.in-mov .tx{flex:1;min-width:0}.in-mov .tx b{display:block;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.in-mov .tx small{color:var(--dim);font-size:12px}
.in-mov .v{font-weight:800;font-size:14px;white-space:nowrap}.in-mov .ent{color:var(--verde)}.in-mov .sal{color:var(--rojo)}
