/* ============================================================
   Tablas compactas reutilizables (medidas maximas / restricciones)
   ------------------------------------------------------------
   Mismo estilo vertical compacto que las tablas maestras: filas
   bajas con vertical-align middle, inputs/selects discretos (casi
   texto en reposo, resalte en foco) y, dentro de un contenedor
   .tabla-scroll, sin scroll horizontal en monitor normal pero con
   scroll cuando la ventana se estrecha (las columnas no se aplastan).
   Las clases de estado (fila-modificada / fila-error / barra-confirmar)
   solo las usan las tablas de edicion directa en lote.
   ============================================================ */

.tabla-compacta { width: 100%; border-collapse: collapse; table-layout: fixed; }

.tabla-compacta thead th {
    padding: 8px; vertical-align: middle; text-align: left;
    font-size: 11px; font-weight: 700; color: var(--muted);
    text-transform: uppercase; letter-spacing: .04em;
    border-bottom: 1px solid var(--line);
}

.tabla-compacta tbody td {
    padding: 4px 8px; vertical-align: middle;
    overflow: hidden; text-overflow: ellipsis;
}

.tabla-compacta tbody tr.fila-restr:hover > td { background: var(--soft); }

/* Input/select discreto: casi texto en reposo, resalte en foco */
.tabla-compacta .edt {
    width: 100%; box-sizing: border-box; font: inherit; font-size: .85rem;
    padding: 5px 7px; border: 1px solid transparent; border-radius: 6px;
    background: transparent; color: var(--text);
    transition: border-color .12s, background .12s;
}
.tabla-compacta .edt:hover { border-color: var(--line); }
.tabla-compacta .edt:focus {
    outline: none; border-color: #2563eb; background: var(--panel);
    box-shadow: 0 0 0 2px rgba(37, 99, 235, .15);
}
.tabla-compacta select.edt { cursor: pointer; }

/* Estados de fila (solo edicion directa en lote) */
.tabla-compacta tr.fila-restr.fila-modificada > td { background: #fffbeb; }
.tabla-compacta tr.fila-restr.fila-modificada > td:first-child { box-shadow: inset 4px 0 0 0 #f59e0b; }
.tabla-compacta tr.fila-restr.fila-error > td { background: #fef2f2; }
.tabla-compacta tr.fila-restr.fila-error > td:first-child { box-shadow: inset 4px 0 0 0 #dc2626; }
.btn-deshacer { display: none; }
.tabla-compacta tr.fila-restr.fila-modificada .btn-deshacer { display: inline-flex; }

/* Boton "Deshacer": accion principal de una fila modificada. Estilo propio
   (fondo ambar suave + borde + icono de deshacer) para diferenciarlo
   claramente de Desactivar/Borrar. Compartido por todas las tablas con
   edicion directa (maestras, medidas y restricciones). El selector .btn
   .btn-deshacer gana en especificidad a .btn.ghost. */
.btn.btn-deshacer {
    color: #92400e;
    background: #fef3c7;
    border-color: #f59e0b;
    font-weight: 700;
    box-shadow: none;
}
.btn.btn-deshacer:hover:not(:disabled) { background: #fde68a; color: #7c2d12; border-color: #d97706; }
.btn-deshacer::before { content: "\21BA"; margin-right: 4px; font-size: 1.05em; line-height: 1; }

.barra-confirmar {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 80;
    display: flex; align-items: center; gap: 14px; padding: 10px 22px;
    background: var(--panel); border-top: 1px solid var(--line);
    box-shadow: 0 -4px 14px rgba(0, 0, 0, .08);
}
.barra-confirmar .resumen { margin-right: auto; font-size: 13px; color: var(--muted); }
.barra-confirmar .resumen.errores { color: #b91c1c; font-weight: 600; }
#btnConfirmar[disabled] { opacity: .5; cursor: not-allowed; }

/* Buscador en tiempo real (mismo look que en maestras) */
.tabla-buscador { padding: 6px 12px; width: 220px; max-width: 100%; font-size: 13px; }

/* Scroll horizontal solo cuando la ventana se estrecha por debajo del
   ancho minimo de la tabla; en monitor normal no aparece. */
.tabla-scroll { overflow-x: auto; }
.tabla-scroll > .tabla-compacta { min-width: 720px; }
