:root{--verde: #1e7145;--verde-oscuro: #175a37;--verde-claro: #e8f3ec;--compra: #1e7145;--venta: #b4530a;--venta-claro: #fdf0e3;--borde: #c9cfd4;--texto: #1d2327;--gris: #5f6b73;--fondo: #f3f5f6;--error: #b3261e;--aviso: #8a5a00}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:system-ui,Segoe UI,Roboto,Arial,sans-serif;font-size:17px;color:var(--texto);background:var(--fondo)}button,input,select{font:inherit;color:inherit}.app{display:flex;flex-direction:column;height:100%}.banda-demo{background:#fff3c4;color:#5c4400;border-bottom:2px solid #e0b800;padding:8px 16px;font-weight:600;display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;text-align:center}.banda-demo button{border:1px solid #5c4400;background:#fff;border-radius:6px;padding:6px 12px;cursor:pointer}.encabezado{background:var(--verde);color:#fff;padding:10px 16px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}.marca{flex:1;min-width:200px}.marca h1{margin:0;font-size:1.4rem}.fecha{font-size:.95rem;opacity:.9;display:inline-block}.fecha:first-letter{text-transform:uppercase}.selector-usuario{display:flex;flex-direction:column;font-size:.8rem;gap:2px}.selector-usuario select{font-size:1rem;min-height:44px;padding:0 10px;border-radius:8px;border:none;background:#fff;color:var(--texto)}.botones-principales{display:flex;gap:10px}.boton{min-height:52px;padding:0 22px;font-size:1.1rem;font-weight:700;border-radius:10px;border:2px solid transparent;cursor:pointer}.boton:disabled{opacity:.5;cursor:not-allowed}.boton-compra{background:#fff;color:var(--compra)}.boton-venta{background:#ffe2c2;color:#7a3600}.boton-secundario{background:#fff;border-color:var(--borde)}.boton-confirmar{background:var(--verde);color:#fff;flex:1}.franja{margin:10px 16px 0}.caja-advertencia,.caja-error,.caja-exito{border-radius:8px;padding:10px 14px;border:1px solid}.caja-advertencia{background:#fff8e1;border-color:#e0b800;color:#5c4400}.caja-advertencia ul{margin:6px 0;padding-left:20px}.caja-error{background:#fdecea;border-color:var(--error);color:var(--error)}.caja-error button{margin-left:10px;min-height:36px;padding:0 12px;border-radius:6px;border:1px solid var(--error);background:#fff;cursor:pointer}.caja-exito{background:var(--verde-claro);border-color:var(--verde);color:var(--verde-oscuro);font-weight:600}.casilla{display:flex;align-items:center;gap:10px;font-weight:600;min-height:44px}.casilla input{width:24px;height:24px}.cuerpo{flex:1;min-height:0;display:flex}.columna-tabla{flex:1;min-width:0;display:flex;flex-direction:column}.filtros{display:flex;gap:12px;padding:12px 16px;flex-wrap:wrap;align-items:center}.grupo-botones{display:flex;border:1px solid var(--borde);border-radius:8px;overflow:hidden;background:#fff}.grupo-botones button{min-height:46px;padding:0 16px;border:none;border-right:1px solid var(--borde);background:#fff;cursor:pointer}.grupo-botones button:last-child{border-right:none}.grupo-botones button.activo{background:var(--verde);color:#fff;font-weight:700}.rango{display:flex;align-items:center;gap:8px}.rango input,.buscador{min-height:46px;padding:0 12px;border:1px solid var(--borde);border-radius:8px;background:#fff}.buscador{flex:1;min-width:200px}.zona-tabla{flex:1;min-height:0;display:flex;flex-direction:column;padding:0 16px 12px}.tabla-scroll{flex:1;min-height:120px;overflow:auto;background:#fff;border:1px solid var(--borde)}.tabla-excel{border-collapse:collapse;width:100%;font-size:.95rem;white-space:nowrap}.tabla-excel th{position:sticky;top:0;background:var(--verde);color:#fff;font-weight:600;padding:9px 7px;border:1px solid var(--verde-oscuro);z-index:1}.tabla-excel td{padding:9px 7px;border:1px solid #d9dee2;text-align:right;font-variant-numeric:tabular-nums}.tabla-excel .izq{text-align:left}.tabla-excel .centro{text-align:center}.tabla-excel .negrita{font-weight:700}.tabla-excel .num-fila{background:#eef0f2;color:var(--gris);text-align:center;width:40px;font-size:.85rem}.tabla-excel th.num-fila{background:var(--verde-oscuro)}.tabla-excel tbody tr:nth-child(2n) td:not(.num-fila){background:#f7faf8}.tabla-excel tr.anulado td{color:#9aa3a9;text-decoration:line-through}.tabla-excel .vacio{text-align:center;color:var(--gris);padding:28px 10px;white-space:normal}.etiqueta{display:inline-block;padding:2px 10px;border-radius:999px;font-weight:700;font-size:.85rem}.et-compra{background:var(--verde-claro);color:var(--verde-oscuro)}.et-venta{background:var(--venta-claro);color:var(--venta)}.fila-totales{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--borde);border-top:3px double var(--verde);background:#fff}.total-celda{padding:10px 14px;border-right:1px solid var(--borde);display:flex;flex-direction:column}.total-celda:last-child{border-right:none}.total-celda span{font-size:.85rem;color:var(--gris);font-weight:600;text-transform:uppercase}.total-celda strong{font-size:1.35rem;font-variant-numeric:tabular-nums}.total-celda em{font-style:normal;color:var(--gris);font-variant-numeric:tabular-nums}.t-compra strong{color:var(--compra)}.t-venta strong{color:var(--venta)}.fondo-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:flex-start;justify-content:center;padding:16px;overflow-y:auto;z-index:10}.tarjeta{background:#fff;border-radius:14px;padding:20px;width:100%;max-width:820px;border-top:8px solid var(--compra);box-shadow:0 10px 40px #0000004d;display:flex;flex-direction:column;gap:14px}.tarjeta-venta{border-top-color:var(--venta)}.tarjeta h2{margin:0;font-size:1.4rem}.fila-form{display:flex;gap:12px;flex-wrap:wrap}.rejilla-campos{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.campo{display:flex;flex-direction:column;gap:4px;min-width:0}.campo-ancho{flex:1;min-width:240px}.campo>span{font-size:.9rem;font-weight:600;color:var(--gris)}.campo em{font-style:normal;font-weight:400}.campo input,.campo select{min-height:52px;padding:0 12px;font-size:1.2rem;border:2px solid var(--borde);border-radius:8px;background:#fff;width:100%}.campo input:focus,.campo select:focus{outline:none;border-color:var(--verde)}.campo input.con-error{border-color:var(--error);background:#fff6f5}.campo small.error{color:var(--error);font-weight:600}.campo small.aviso{color:var(--aviso)}.total-calculado{background:var(--verde-claro);border-radius:8px;padding:6px 12px;justify-content:center}.total-calculado strong{font-size:1.4rem;font-variant-numeric:tabular-nums}.acciones{display:flex;gap:12px}.chat{width:370px;flex-shrink:0;display:flex;flex-direction:column;background:#fff;border-left:1px solid var(--borde);min-height:0}.chat-titulo{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 14px;border-bottom:1px solid var(--borde)}.chat h2{margin:0;font-size:1.05rem;color:var(--verde-oscuro)}.interruptor{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--gris);min-height:36px;cursor:pointer}.interruptor input{width:20px;height:20px}.boton-microfono{margin:10px 12px;min-height:64px;border:none;border-radius:14px;background:var(--verde);color:#fff;font-size:1.2rem;font-weight:700;display:flex;align-items:center;justify-content:center;gap:10px;cursor:pointer}.boton-microfono:disabled{opacity:.5;cursor:not-allowed}.boton-microfono.escuchando{background:#b3261e;font-size:1rem;animation:pulso 1.2s ease-in-out infinite}.icono-microfono{font-size:1.5rem;line-height:1}@keyframes pulso{0%,to{box-shadow:0 0 #b3261e80}50%{box-shadow:0 0 0 10px #b3261e00}}@media (prefers-reduced-motion: reduce){.boton-microfono.escuchando{animation:none}}.dictando{opacity:.75;font-style:italic}.chat-error{margin:8px 12px 0;padding:8px 10px;border-radius:8px;background:#fdecea;color:var(--error);font-size:.9rem}.chat-sin-voz{margin:8px 12px 0;font-size:.85rem;color:var(--gris)}.chat-mensajes{flex:1;min-height:0;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px;background:#f7f8f9}.burbuja{max-width:88%;padding:9px 12px;border-radius:14px;line-height:1.35;white-space:pre-wrap;overflow-wrap:anywhere}.burbuja small{display:block;margin-top:4px;color:var(--aviso);font-size:.8rem}.b-usuario{align-self:flex-end;background:var(--verde);color:#fff;border-bottom-right-radius:4px}.b-asistente{align-self:flex-start;background:#fff;border:1px solid var(--borde);border-bottom-left-radius:4px}.pensando{color:var(--gris);font-style:italic}.chat-borrador{padding:8px 12px;background:#fff8e1;border-top:1px solid #e0b800;font-size:.9rem;display:flex;flex-direction:column;gap:6px}.chat-borrador div{display:flex;gap:8px}.chat-borrador button{min-height:40px;padding:0 12px;border:1px solid var(--borde);border-radius:8px;background:#fff;cursor:pointer}.chat-entrada{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--borde)}.chat-entrada textarea{flex:1;min-width:0;resize:none;padding:8px 10px;border:2px solid var(--borde);border-radius:8px;font:inherit}.chat-entrada textarea:focus{outline:none;border-color:var(--verde)}.chat-entrada .boton{flex:0 0 auto;padding:0 16px}.nota-tarjeta{margin:-8px 0 0;color:var(--gris)}.acciones{flex-wrap:wrap}@media (max-width: 1000px){.app{height:auto;min-height:100%}.cuerpo{flex-direction:column}.tabla-scroll{max-height:45vh}.chat{width:auto;border-left:none;border-top:1px solid var(--borde);height:420px}}@media (max-width: 700px){body{font-size:16px}.rejilla-campos{grid-template-columns:repeat(2,1fr)}.botones-principales{width:100%}.botones-principales .boton{flex:1}.total-celda strong{font-size:1.1rem}.total-celda{padding:8px}}.obligatorio{color:var(--error);font-weight:700}.campo input::placeholder{color:#a9b1b7;font-size:1rem}.boton-excel{background:transparent;color:#fff;border-color:#fff;font-size:1rem;padding:0 16px}.botones-principales{flex-wrap:wrap}.usuario-activo{display:flex;align-items:center;gap:10px;background:#ffffff1f;border-radius:10px;padding:6px 6px 6px 12px}.usuario-activo span{display:flex;flex-direction:column;font-weight:700;line-height:1.2}.usuario-activo em{font-style:normal;font-weight:400;font-size:.8rem;opacity:.85}.usuario-activo button{min-height:40px;padding:0 14px;border-radius:8px;border:1px solid #fff;background:transparent;color:#fff;cursor:pointer}.ingreso{min-height:100%;display:flex;align-items:center;justify-content:center;padding:16px;background:var(--verde)}.ingreso-caja{background:#fff;border-radius:16px;padding:24px;width:100%;max-width:560px;display:flex;flex-direction:column;gap:14px;text-align:center;box-shadow:0 10px 40px #00000040}.ingreso-caja h1{margin:0;color:var(--verde);font-size:1.5rem}.ingreso-caja h2{margin:4px 0 0;font-size:1.3rem}.ingreso-nota{margin:0;color:var(--gris)}.ingreso-usuarios{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}.ingreso-usuario{min-height:110px;border:2px solid var(--borde);border-radius:14px;background:#fff;font-size:1.1rem;font-weight:700;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;cursor:pointer}.ingreso-usuario:hover:not(:disabled){border-color:var(--verde);background:var(--verde-claro)}.ingreso-usuario:disabled{opacity:.5;cursor:not-allowed}.ingreso-usuario small{font-weight:400;color:var(--error)}.ingreso-inicial{width:48px;height:48px;border-radius:50%;background:var(--verde);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.4rem}.ingreso-puntos{display:flex;justify-content:center;gap:18px;margin:6px 0}.ingreso-puntos span{width:22px;height:22px;border-radius:50%;border:3px solid var(--verde)}.ingreso-puntos span.lleno{background:var(--verde)}.ingreso-puntos.con-error span{border-color:var(--error)}.ingreso-mensaje{min-height:1.4em;color:var(--error);font-weight:600}.ingreso-teclado{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:340px;width:100%;margin:0 auto}.tecla{min-height:64px;border-radius:12px;border:2px solid var(--borde);background:#fff;font-size:1.6rem;font-weight:700;cursor:pointer}.tecla:active:not(:disabled){background:var(--verde-claro)}.tecla-borrar,.tecla-atras{font-size:1.05rem;color:var(--gris)}.ingreso-volver{align-self:center;min-height:44px;border:none;background:none;color:var(--verde);font-size:1rem;cursor:pointer;text-decoration:underline}
