:root{--azul: #233a97;--azul-osc: #15235b;--azul-med: #1c2e79;--azul-claro: #e9edfa;--azul-borde: #c9d2f2;--verde: #8bc34a;--verde-osc: #5f8a30;--verde-claro: #eef6e4;--naranja: #f5a623;--naranja-osc: #b9740c;--naranja-claro: #fef3e0;--rojo: #c8322f;--rojo-claro: #fdecec;--fondo: #f5f6f9;--superficie: #ffffff;--borde: #e2e5ec;--borde-fuerte: #cdd2dc;--texto: #101828;--texto-2: #475467;--texto-3: #8a94a6;--sombra: 0 1px 2px rgba(16, 24, 40, .06), 0 1px 3px rgba(16, 24, 40, .08);--radio: 8px;--fuente: "Inter", -apple-system, "Segoe UI", Roboto, sans-serif;--fuente-tit: "Space Grotesk", "Inter", sans-serif;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--fuente);font-size:14px;line-height:1.45;color:var(--texto);background:var(--fondo);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--fuente-tit);margin:0;letter-spacing:-.01em;color:var(--texto)}h1{font-size:22px;font-weight:700}h2{font-size:17px;font-weight:600}h3{font-size:15px;font-weight:600}a{color:var(--azul);text-decoration:none}a:hover{text-decoration:underline}.num,td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.mono{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:12.5px}.muted{color:var(--texto-2)}.sutil{color:var(--texto-3);font-size:12.5px}.ok{color:var(--verde-osc)}.mal{color:var(--rojo)}.alerta-txt{color:var(--naranja-osc)}.app{display:grid;grid-template-columns:232px 1fr;height:100vh}.lateral{background:var(--azul-osc);color:#dfe5fb;display:flex;flex-direction:column;overflow-y:auto}.lateral .marca{padding:14px 16px 6px;display:flex;flex-direction:column;align-items:center;gap:2px;border-bottom:1px solid rgba(255,255,255,.08)}.lateral .marca img{width:150px;height:auto}.lateral .marca span{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#9fb0ea;padding-bottom:8px}.lateral nav{padding:8px 8px 16px;display:flex;flex-direction:column;gap:1px}.lateral .grupo{font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:#8193d6;padding:14px 10px 4px;font-weight:600}.lateral a{color:#dfe5fb;display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:6px;font-size:13.5px}.lateral a:hover{background:#ffffff12;text-decoration:none}.lateral a.activo{background:var(--azul);color:#fff;box-shadow:inset 3px 0 0 var(--verde)}.lateral a .ic{width:18px;text-align:center;opacity:.85}.lateral .pie{margin-top:auto;padding:12px 14px;border-top:1px solid rgba(255,255,255,.08);font-size:12px}.lateral .pie .rol{display:inline-block;margin-top:2px;padding:1px 7px;border-radius:10px;background:#8bc34a33;color:#c9e8a4;font-size:11px}.lateral .pie button{margin-top:8px;width:100%;background:transparent;border:1px solid rgba(255,255,255,.2);color:#dfe5fb}.lateral .pie button:hover{background:#ffffff14}.principal{overflow-y:auto;min-width:0}.pagina{padding:20px 28px 40px;max-width:1500px}.cabecera{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px;flex-wrap:wrap}.cabecera .sub{color:var(--texto-2);margin-top:2px}.acciones{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.tarjeta{background:var(--superficie);border:1px solid var(--borde);border-radius:var(--radio);box-shadow:var(--sombra)}.tarjeta>.tit{padding:12px 16px;border-bottom:1px solid var(--borde);display:flex;align-items:center;justify-content:space-between;gap:8px}.tarjeta>.cuerpo{padding:14px 16px}.rejilla{display:grid;gap:14px}.r2{grid-template-columns:repeat(2,minmax(0,1fr))}.r3{grid-template-columns:repeat(3,minmax(0,1fr))}.r4{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:1100px){.r4{grid-template-columns:repeat(2,minmax(0,1fr))}.r3{grid-template-columns:1fr 1fr}}.kpi{padding:14px 16px;display:flex;flex-direction:column;gap:2px}.kpi .et{font-size:12px;color:var(--texto-2);font-weight:500}.kpi .val{font-family:var(--fuente-tit);font-size:26px;font-weight:700;color:var(--azul-osc);font-variant-numeric:tabular-nums}.kpi .val small{font-size:14px;font-weight:500;color:var(--texto-2);margin-left:4px}.kpi.rojo{border-left:4px solid var(--rojo)}.kpi.naranja{border-left:4px solid var(--naranja)}.kpi.verde{border-left:4px solid var(--verde)}.kpi.azul{border-left:4px solid var(--azul)}.botones-grandes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.boton-grande{display:flex;align-items:center;gap:12px;padding:16px 18px;border-radius:var(--radio);border:1px solid var(--borde);background:var(--superficie);box-shadow:var(--sombra);cursor:pointer;font:inherit;text-align:left;color:var(--texto)}.boton-grande:hover{border-color:var(--azul);text-decoration:none}.boton-grande .ic{width:42px;height:42px;border-radius:10px;display:grid;place-items:center;font-size:20px;flex:none}.boton-grande b{display:block;font-family:var(--fuente-tit);font-size:15.5px}.boton-grande span{font-size:12.5px;color:var(--texto-2)}.bg-azul .ic{background:var(--azul-claro);color:var(--azul)}.bg-verde .ic{background:var(--verde-claro);color:var(--verde-osc)}.bg-naranja .ic{background:var(--naranja-claro);color:var(--naranja-osc)}.bg-gris .ic{background:#eef0f4;color:var(--texto-2)}@media(max-width:1100px){.botones-grandes{grid-template-columns:1fr 1fr}}button,.btn{font:inherit;font-weight:500;font-size:13.5px;padding:7px 14px;border-radius:6px;border:1px solid var(--borde-fuerte);background:var(--superficie);color:var(--texto);cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;line-height:1.3}button:hover:not(:disabled),.btn:hover{background:#f3f5f9;text-decoration:none}button:disabled{opacity:.55;cursor:not-allowed}.primario{background:var(--azul);border-color:var(--azul);color:#fff}.primario:hover:not(:disabled){background:var(--azul-med)}.exito{background:var(--verde-osc);border-color:var(--verde-osc);color:#fff}.exito:hover:not(:disabled){background:#527a28}.peligro{color:var(--rojo);border-color:#efb7b5}.peligro:hover:not(:disabled){background:var(--rojo-claro)}.fantasma{border-color:transparent;background:transparent}.chico{padding:3px 9px;font-size:12.5px}.enlace{border:none;background:none;padding:0;color:var(--azul);font-weight:500}.enlace:hover:not(:disabled){background:none;text-decoration:underline}label.campo{display:flex;flex-direction:column;gap:4px;font-size:12.5px;font-weight:500;color:var(--texto-2);min-width:0}label.campo .req{color:var(--rojo)}input,select,textarea{font:inherit;font-size:13.5px;color:var(--texto);padding:7px 10px;border:1px solid var(--borde-fuerte);border-radius:6px;background:#fff;min-width:0;width:100%}input:focus,select:focus,textarea:focus{outline:2px solid rgba(35,58,151,.25);border-color:var(--azul)}input[type=checkbox]{width:auto}textarea{resize:vertical;min-height:60px}.form{display:grid;gap:12px 14px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.form .ancho{grid-column:1 / -1}.filtros{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;padding:12px 16px}.filtros label.campo{width:170px}.filtros label.campo.largo{width:260px}.tabla-cont{overflow:auto;max-height:calc(100vh - 260px)}.tabla-cont.libre{max-height:none}table.tabla{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}.tabla th{position:sticky;top:0;z-index:2;background:#f0f2f7;color:var(--texto-2);font-weight:600;font-size:12px;text-align:left;padding:8px 10px;border-bottom:1px solid var(--borde-fuerte);white-space:nowrap;-webkit-user-select:none;user-select:none}.tabla th.ordenable{cursor:pointer}.tabla th.ordenable:hover{color:var(--azul)}.tabla td{padding:7px 10px;border-bottom:1px solid var(--borde);vertical-align:middle}.tabla tbody tr:hover td{background:#f8f9fc}.tabla tbody tr.clic{cursor:pointer}.tabla tr.anulado td{color:var(--texto-3);text-decoration:line-through}.tabla tfoot td{position:sticky;bottom:0;background:#f7f8fb;font-weight:600;border-top:1px solid var(--borde-fuerte)}.tabla .vacio{text-align:center;color:var(--texto-3);padding:28px}.pie-tabla{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;border-top:1px solid var(--borde);font-size:12.5px;color:var(--texto-2);gap:10px}.chip{display:inline-block;padding:1px 8px;border-radius:10px;font-size:11.5px;font-weight:600;white-space:nowrap}.chip.verde{background:var(--verde-claro);color:var(--verde-osc)}.chip.rojo{background:var(--rojo-claro);color:var(--rojo)}.chip.naranja{background:var(--naranja-claro);color:var(--naranja-osc)}.chip.azul{background:var(--azul-claro);color:var(--azul)}.chip.gris{background:#eef0f4;color:var(--texto-2)}.id-link{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:12.5px;font-weight:600}.grilla-cont{overflow:auto;max-height:calc(100vh - 330px);min-height:240px;border-top:1px solid var(--borde)}table.grilla{border-collapse:separate;border-spacing:0;width:100%;font-size:13px}.grilla th{position:sticky;top:0;z-index:3;background:#eef1f7;font-size:12px;font-weight:600;color:var(--texto-2);padding:6px 8px;text-align:left;border-bottom:1px solid var(--borde-fuerte);border-right:1px solid var(--borde);white-space:nowrap}.grilla td{border-bottom:1px solid var(--borde);border-right:1px solid var(--borde);padding:0;height:32px;vertical-align:middle;position:relative}.grilla td.n{width:38px;text-align:center;color:var(--texto-3);font-size:11.5px;background:#fafbfd}.grilla td.calc{padding:0 8px;color:var(--texto-2);background:#fafbfd;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.grilla td input{border:none;border-radius:0;height:31px;padding:0 8px;background:transparent}.grilla td input:focus{outline:2px solid var(--azul);outline-offset:-2px;background:#fff}.grilla td.num input{text-align:right}.grilla tr.falta td{background:#fff5f5}.grilla tr.falta td.calc{background:#ffeaea}.grilla tr.err td input.err{color:var(--rojo)}.grilla .estado{padding:0 8px;font-size:12px;white-space:nowrap}.grilla .quitar{border:none;background:none;color:var(--texto-3);padding:0 8px;height:31px}.grilla .quitar:hover{color:var(--rojo);background:none}.grilla tr.cubre td{background:#f3f8ec}.ac{position:relative;width:100%}.ac-lista{position:fixed;z-index:100;background:#fff;border:1px solid var(--borde-fuerte);border-radius:6px;box-shadow:0 8px 24px #10182829;max-height:300px;overflow-y:auto;min-width:320px}.ac-op{padding:6px 10px;cursor:pointer;display:flex;justify-content:space-between;gap:12px;font-size:13px}.ac-op small{color:var(--texto-3);white-space:nowrap}.ac-op.sel{background:var(--azul-claro)}.ac-op .agotado{color:var(--rojo)}.velo{position:fixed;top:0;right:0;bottom:0;left:0;background:#10182873;display:grid;place-items:center;z-index:200;padding:20px}.modal{background:#fff;border-radius:10px;box-shadow:0 20px 50px #00000040;width:min(560px,100%);max-height:calc(100vh - 40px);display:flex;flex-direction:column}.modal.ancho{width:min(980px,100%)}.modal .tit{padding:14px 18px;border-bottom:1px solid var(--borde);display:flex;justify-content:space-between;align-items:center}.modal .cuerpo{padding:16px 18px;overflow-y:auto}.modal .pie{padding:12px 18px;border-top:1px solid var(--borde);display:flex;justify-content:flex-end;gap:8px}.aviso{padding:10px 14px;border-radius:6px;border:1px solid;font-size:13px;display:flex;gap:10px;align-items:flex-start}.aviso.info{background:var(--azul-claro);border-color:var(--azul-borde);color:var(--azul-osc)}.aviso.ok{background:var(--verde-claro);border-color:#cfe5b4;color:#3e5f1d}.aviso.adv{background:var(--naranja-claro);border-color:#f6d59c;color:#7a4c06}.aviso.error{background:var(--rojo-claro);border-color:#f2c0bf;color:#8e1f1d}.toasts{position:fixed;bottom:18px;right:18px;display:flex;flex-direction:column;gap:8px;z-index:300;max-width:420px}.toasts .aviso{box-shadow:0 8px 24px #1018282e}.pasos{display:flex;gap:6px;align-items:center;font-size:12.5px;color:var(--texto-3)}.pasos b{color:var(--azul)}.resumen-cab{display:flex;gap:22px;flex-wrap:wrap;font-size:13px;padding:10px 16px;background:#fafbfd;border-bottom:1px solid var(--borde)}.resumen-cab div span{display:block;font-size:11.5px;color:var(--texto-3)}.totales-barra{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:10px 16px;border-top:1px solid var(--borde);background:#fafbfd;flex-wrap:wrap}.totales-barra .t{display:flex;gap:20px;font-variant-numeric:tabular-nums}.totales-barra .t b{font-family:var(--fuente-tit);font-size:16px}.lista-simple{list-style:none;margin:0;padding:0}.lista-simple li{padding:8px 16px;border-bottom:1px solid var(--borde);display:flex;justify-content:space-between;gap:10px;align-items:center}.lista-simple li:last-child{border-bottom:none}.centro{display:grid;place-items:center;min-height:100vh;padding:20px;background:linear-gradient(160deg,var(--azul-osc),var(--azul) 70%)}.login{background:#fff;border-radius:14px;padding:32px 36px;width:min(420px,100%);text-align:center;box-shadow:0 30px 60px #00000040}.login img{width:210px;background:var(--azul-osc);border-radius:12px;padding:10px 14px}.login h1{margin:18px 0 4px;font-size:20px}.login p{color:var(--texto-2);margin:0 0 22px}.boton-google{width:100%;justify-content:center;padding:10px 14px;font-size:14.5px}.cargando{padding:40px;text-align:center;color:var(--texto-2)}.sep{height:14px}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--borde);margin-bottom:14px;flex-wrap:wrap}.tabs a,.tabs button{padding:8px 14px;border:none;border-bottom:2px solid transparent;border-radius:0;background:none;color:var(--texto-2);font-weight:500}.tabs a.activo,.tabs button.activo{color:var(--azul);border-bottom-color:var(--azul)}.tabs a:hover{text-decoration:none;color:var(--azul)}kbd{font-family:inherit;font-size:11px;padding:0 5px;border:1px solid var(--borde-fuerte);border-bottom-width:2px;border-radius:4px;background:#fff}.pagina.ancha{max-width:none}.hc{display:flex;flex-direction:column;min-width:0}.hc-cont{position:relative;overflow:auto;height:calc(100vh - 360px);min-height:320px;background:#fff;border-top:1px solid var(--borde)}.hc-sumidero{position:absolute;left:0;top:0;width:1px;height:1px;opacity:0;pointer-events:none;resize:none;border:0;padding:0;overflow:hidden}.hc-tabla{border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:13px}.hc-tabla th{position:sticky;top:0;z-index:3;background:#eef1f7;color:var(--texto-2);font-size:12px;font-weight:600;text-align:left;padding:0 6px;border-bottom:1px solid var(--borde-fuerte);border-right:1px solid var(--borde);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hc-tabla th.auto{color:var(--texto-3);font-weight:500}.hc-tabla th.num{text-align:right}.hc-tabla th.n{left:0;z-index:4;text-align:center}.hc-tabla td{padding:0 6px;border-right:1px solid var(--borde);border-bottom:1px solid var(--borde);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:cell;-webkit-user-select:none;user-select:none;background:#fff}.hc-tabla td.n{position:sticky;left:0;z-index:2;background:#f3f5f9;color:var(--texto-3);text-align:center;font-size:11.5px;cursor:pointer}.hc-tabla td.num{text-align:right;font-variant-numeric:tabular-nums}.hc-tabla td.auto{background:#f8f9fc;color:var(--texto-2)}.hc-tabla tr.f-stock td:not(.n){background:#fff0f0}.hc-tabla tr.f-cubre td:not(.n){background:#f3f8ec}.hc-tabla tr.f-excluida td:not(.n){color:var(--texto-3);text-decoration:line-through;background:#fafafa}.hc-tabla tr td.err{background:#fde3e3;box-shadow:inset 0 -2px 0 var(--rojo);color:#8e1f1d}.hc-tabla tr td.av{background:#fff4dc;box-shadow:inset 0 -2px 0 var(--naranja)}.hc-tabla tr td.e-ok{color:var(--verde-osc);font-weight:600}.hc-tabla tr td.e-falta{color:var(--naranja-osc);font-weight:600;background:#fff7e8}.hc-tabla tr td.e-stock{color:#fff;font-weight:600;background:var(--rojo)}.hc-tabla tr td.e-excl{color:var(--texto-3)}.hc-tabla td.sel{box-shadow:inset 0 0 0 9999px #233a971f}.hc-tabla td.act{outline:2px solid var(--azul);outline-offset:-2px}.hc-tabla td.editando{padding:0;outline:2px solid var(--azul);outline-offset:-2px;overflow:visible}.hc-editor{width:100%;height:27px;border:none;border-radius:0;outline:none;padding:0 6px;font:inherit;background:#fff}.hc-editor:focus{outline:none}.hc-vacio{padding:30px;text-align:center;color:var(--texto-3)}.hc-barra{display:flex;gap:10px;align-items:center;padding:6px 12px;min-height:36px;font-size:12.5px;border-top:1px solid var(--borde);background:#fafbfd}.hc-barra>span:not(:last-child){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.hoja-barra{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px 0;flex-wrap:wrap;border-bottom:1px solid var(--borde)}.tabs-hoja{display:flex;gap:2px}.tabs-hoja button{border:1px solid var(--borde);border-bottom:none;border-radius:6px 6px 0 0;background:#f3f5f9;font-weight:600;font-size:12.5px;letter-spacing:.02em}.tabs-hoja button.activo{background:#fff;color:var(--azul);box-shadow:inset 0 3px 0 var(--verde)}.hoja-barra .acciones{padding-bottom:6px}.contadores{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:8px 12px;font-size:13px}.contadores .check{margin-left:auto;display:flex;gap:6px;align-items:center;color:var(--texto-2);cursor:pointer}.hoja-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;border-top:1px solid var(--borde)}@media(max-width:1200px){.hoja-layout{grid-template-columns:1fr}}.panel-faltantes{border:none;border-left:1px solid var(--borde);border-radius:0;box-shadow:none;display:flex;flex-direction:column;min-height:0}.panel-faltantes .panel-cuerpo{overflow-y:auto;max-height:calc(100vh - 290px)}.faltante{padding:10px 14px;border-bottom:1px solid var(--borde);font-size:13px}.faltante-tit{margin-bottom:2px}.equivalentes{margin-top:8px;display:flex;flex-direction:column;gap:6px}.equivalente{display:flex;gap:8px;justify-content:space-between;align-items:center;background:var(--verde-claro);border-radius:6px;padding:6px 8px}.faltante-acciones{display:flex;gap:6px;margin-top:8px;align-items:center}.faltante-acciones input{padding:4px 8px;font-size:12.5px}.faltante-filas{list-style:none;margin:6px 0 0;padding:0}.faltante-filas li{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:center;padding:5px 0;border-top:1px dashed var(--borde);font-size:12.5px}.faltante-filas li .acciones{margin-left:auto;gap:4px}.lista-resumen{margin:12px 0 0;padding-left:18px;line-height:1.8}.lista-ids{list-style:none;margin:0;padding:0;max-height:260px;overflow-y:auto;font-size:12.5px}.lista-ids li{padding:3px 0;border-bottom:1px solid var(--borde)}.reporte-enc{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:14px 16px;border-top:1px solid var(--borde);border-bottom:1px solid var(--borde);background:#fafbfd}.reporte-enc h2{margin-bottom:6px}.reporte-enc dl{display:flex;flex-wrap:wrap;gap:4px 24px;margin:0}.reporte-enc dt{font-size:11.5px;color:var(--texto-3)}.reporte-enc dd{margin:0;font-weight:600}.reporte-tabla{max-width:760px}.reporte-tabla tr.cero td{color:var(--texto-3)}.tabla.compacta td,.tabla.compacta th{padding:5px 8px}.matriz{border-top:1px solid var(--borde);margin-top:8px}.tit-matriz{display:flex;justify-content:space-between;align-items:center;padding:12px 16px 8px}@media print{@page{size:landscape;margin:12mm}body{background:#fff}.app{display:block;height:auto}.lateral,.no-imprimir,.toasts{display:none!important}.principal{overflow:visible}.pagina{padding:0;max-width:none}.tarjeta{box-shadow:none;border:none}.tabla-cont{max-height:none;overflow:visible}.tabla th,.tabla tfoot td{position:static}.tabla{font-size:11px}}
