:root {
    --azul: #1f4e78;
    --azul-claro: #eaf1f8;
    --borde: #d9d9d9;
    --texto: #222;
    --verde: #c6e0b4;
    --amarillo: #ffe699;
    --naranja: #f8cbad;
    --rojo: #f4b6b6;
    --gris: #e6e6e6;
}

* { box-sizing: border-box; }

body {
    font-family: "Segoe UI", Calibri, Arial, sans-serif;
    background: #f4f6f8;
    color: var(--texto);
    margin: 0;
    padding: 24px;
}

/* 1200px se quedaba corto en monitores anchos (ej. 27"), dejando la
   tabla de revision comprimida sin aprovechar el espacio disponible.
   1800px con un poco de aire a los lados en pantallas ultra anchas. */
.contenedor { max-width: 1800px; margin: 0 auto; padding-left: 16px; padding-right: 16px; }

h1 { color: var(--azul); margin-bottom: 20px; }
h2 { color: var(--azul); font-size: 1.15rem; margin-top: 0; }

.tarjeta {
    background: #fff;
    border: 1px solid var(--borde);
    border-radius: 10px;
    padding: 20px 24px;
    margin-bottom: 20px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.05);
}

.oculto { display: none !important; }

label { display: block; font-weight: 600; margin: 12px 0 4px; font-size: 0.9rem; }
label.checkbox, label.radio { font-weight: normal; display: flex; align-items: center; gap: 8px; }

input[type="text"], input[type="number"], input[type="file"], select, textarea {
    width: 100%;
    padding: 8px 10px;
    border: 1px solid var(--borde);
    border-radius: 6px;
    font-size: 0.95rem;
    font-family: inherit;
}

textarea { resize: vertical; }

#detalle-productos-permitidos {
    margin-top: 10px;
    border: 1px solid var(--borde);
    border-radius: 6px;
    padding: 8px 12px;
    background: #fafafa;
}
#detalle-productos-permitidos summary {
    cursor: pointer;
    font-size: 0.85rem;
    color: var(--azul);
    font-weight: 600;
}
#lista-productos-permitidos {
    margin: 10px 0 2px;
    padding-left: 18px;
    max-height: 220px;
    overflow-y: auto;
    font-size: 0.85rem;
    columns: 2;
    column-gap: 20px;
}
#lista-productos-permitidos li { break-inside: avoid; }

.tabs { display: flex; gap: 6px; margin-top: 14px; }
.tab {
    padding: 8px 16px;
    border: 1px solid var(--borde);
    background: #f0f0f0;
    border-radius: 6px 6px 0 0;
    cursor: pointer;
}
.tab.activo { background: var(--azul); color: #fff; border-color: var(--azul); }

#panel-archivo { display: flex; align-items: center; gap: 10px; margin-top: 12px; }
#panel-archivo input[type="file"] { width: auto; flex: 1; }
#pista-pegar { font-size: 0.8rem; color: #777; font-style: italic; white-space: nowrap; }

button {
    padding: 9px 18px;
    border-radius: 6px;
    border: 1px solid var(--borde);
    background: #fff;
    cursor: pointer;
    font-size: 0.9rem;
}
button:hover { background: #f0f0f0; }
button.primario { background: var(--azul); color: #fff; border-color: var(--azul); font-weight: 600; }
button.primario:hover { background: #163a5c; }

.acciones { display: flex; align-items: center; gap: 10px; margin-top: 16px; }
.crece { flex: 1; }

.error {
    margin-top: 12px;
    padding: 10px 14px;
    background: var(--rojo);
    border-radius: 6px;
}

.fila-encabezado { display: flex; gap: 20px; }
.fila-encabezado > div { flex: 1; }

.uso-tokens { margin-top: 8px; font-size: 0.78rem; color: #777; }

.tabla-scroll { overflow-x: auto; margin-top: 16px; }

/* table-layout:fixed + el <colgroup> del HTML (en % del ancho total,
   no px fijos) son los que deciden el ancho de cada columna (ver
   templates/index.html); con anchos en % la tabla SI aprovecha
   pantallas anchas -- antes, con px fijos, la tabla se quedaba con el
   mismo ancho exacto sin importar que tan grande fuera el monitor.
   min-width sigue siendo el piso para pantallas angostas (activa el
   scroll horizontal de .tabla-scroll en vez de comprimir columnas). */
table { border-collapse: collapse; width: 100%; min-width: 1260px; table-layout: fixed; font-size: 0.78rem; }
th, td { border: 1px solid var(--borde); padding: 3px 5px; line-height: 1.25; overflow: hidden; }
th { background: var(--azul); color: #fff; text-align: left; white-space: nowrap; font-size: 0.78rem; }
td input, td select {
    border: none; padding: 2px 3px; font-size: 0.78rem; width: 100%; background: transparent; line-height: 1.25;
}
/* El tamano de fuente de estos inputs lo ajusta ajustarTamanoDinamico()
   en JS (achicandolo hasta que el texto quepa completo), en vez de
   recortarlo con "..." como antes -- para poder verificar cantidades y
   nombres largos sin tener que hacer clic en cada celda. */
td input:focus, td select:focus { outline: 2px solid var(--azul); background: #fff; }

/* Colores por celda/motivo (calcados de las reglas de formato
   condicional del Conversor Universal .xlsm, ver conversacion): cada
   columna se resalta por su propia razon, en vez de pintar toda la fila
   de un solo color segun el Estado. */
td.celda-codigo-permitido { background: var(--verde); }
td.celda-codigo-sin-permiso { background: var(--rojo); }
td.celda-duplicado { background: var(--naranja); font-weight: 700; }
td.celda-estado-sinpermiso, td.celda-estado-revision, td.celda-codigo-error { background: var(--rojo); }
td.celda-estado-correccion { background: #e3d1f7; }
td.celda-estado-varios { background: var(--gris); }
td.celda-unidad-conteo { background: #fde3cf; }
td.celda-unidad-presentacion-incorrecta { background: var(--rojo); }
td.celda-maduracion-activa { background: #ffd9ec; }

/* Fila completa en azul claro cuando el Total es >= 100: cantidades asi
   de grandes son inusuales en un pedido normal y suelen delatar un error
   de interpretacion de unidad (ej. "500 gramos" mal leido como "500 Kg").
   Se aplica al <tr> (no a cada <td>) para que las celdas que YA tienen su
   propio color por otro motivo (duplicado, sin permiso, etc.) lo
   conserven -- el fondo de la fila solo se ve en las celdas sin color
   propio, ver recalcularResaltados() en app.js. */
tr.fila-cantidad-alta { background: #cfe8ff; }

/* Fila en morado claro cuando el Total quedo en 0: casi siempre es una
   cantidad que el sistema no pudo determinar solo (ej. un monto en
   pesos "2000$" en vez de una cantidad real) y que un humano debe
   completar antes de despachar el pedido. */
tr.fila-cantidad-cero { background: #e6d9f5; }

.col-borrar { width: 30px; text-align: center; cursor: pointer; }

.col-arrastrable { position: relative; }
.asa-arrastre {
    position: absolute;
    right: 1px;
    bottom: 1px;
    width: 8px;
    height: 8px;
    background: var(--azul);
    border: 1px solid #fff;
    cursor: crosshair;
}
tr.fila-en-rango-arrastre { outline: 2px dashed var(--azul); outline-offset: -2px; }

.col-codigo-permiso { position: relative; }
.boton-permiso {
    position: absolute;
    top: 1px;
    right: 1px;
    width: 15px;
    height: 15px;
    line-height: 13px;
    padding: 0;
    border: 1px solid #fff;
    border-radius: 3px;
    font-weight: 700;
    font-size: 0.75rem;
    cursor: pointer;
    color: #fff;
}
.boton-permiso-agregar { background: #4c8c3c; }
.boton-permiso-quitar { background: #b83a3a; }
.boton-permiso:disabled { opacity: 0.5; cursor: default; }

#resultado-exportacion { margin-top: 16px; }
#resultado-exportacion a {
    display: inline-block;
    margin: 4px 8px 4px 0;
    padding: 8px 14px;
    background: var(--azul-claro);
    border: 1px solid var(--azul);
    border-radius: 6px;
    color: var(--azul);
    text-decoration: none;
    font-weight: 600;
}

/* Menu de sugerencias de la columna Codigo (reemplaza el <datalist>
   nativo, que ningun navegador permite estilizar por opcion). Se
   posiciona con JS (left/top/width inline) justo debajo del input. */
.sugerencias-codigo {
    position: absolute;
    z-index: 1000;
    background: #fff;
    border: 1px solid var(--borde);
    border-radius: 6px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    max-height: 320px;
    overflow-y: auto;
}
.sugerencia-codigo {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    font-size: 0.85rem;
    cursor: pointer;
    border-bottom: 1px solid #f0f0f0;
}
.sugerencia-codigo:last-child { border-bottom: none; }
.sugerencia-codigo:hover { background: var(--azul-claro); }
.sugerencia-codigo.permitido { background: var(--verde); }
.sugerencia-codigo.permitido:hover { background: #b3d69a; }
.sugerencia-codigo.no-permitido { color: #888; }
.sug-codigo { font-weight: 600; flex: none; min-width: 64px; }
.sug-nombre { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sug-marca { flex: none; color: #2e7d32; font-weight: 700; }
