<script lang="ts">
	import * as Tabs from '$lib/components/ui/tabs';
	import { Input } from '$lib/components/ui/input';
	import { Label } from '$lib/components/ui/label';
	import { Checkbox } from '$lib/components/ui/checkbox';
	import { Textarea } from '$lib/components/ui/textarea';
	import { RadioGroup, RadioGroupItem } from '$lib/components/ui/radio-group';

	let {
		formData = $bindable(),
		activeSystem = 'ssisgen'
	}: {
		formData: any;
		activeSystem?: 'ssisgen' | 'qsisgen';
	} = $props();

	const defaultFormData = {
		// General — Reporte de descarga
		FraccMexDes: false,
		TipoFraccMexDes: false,
		ColValorDes: false,
		ColPesoDes: false,
		// General — Decimales
		DecimalesPeso: null,
		DecimalesCant: null,
		DecimalesCosto: null,
		DecimalesValor: null,
		// General — Formas de cálculo
		BaseCostoMPoTotal: 'materia_prima',
		CalVATotAgreMP: 'mp_formula',
		CalVABaseCapt: false,
		CalEmpaqueBaseCapt: false,
		CalPesoBaseDescarga: false,
		LocCombinacionParametro: 'F1',
		// General — Opciones de descarga
		DescargaSust: false,
		DescargaClase: false,
		DescargaDef: false,
		VentQueueAct: false,
		ColCantPorPeso: false,

		// General 2 — Límites
		CantLimiteMin: null,
		PesoLimiteMin: null,
		ValorLimiteMin: null,
		CantLimite: null,
		PesoLimite: null,
		ValorLimite: null,
		PesoNetoDesDifFac: null,
		// General 2 — Checkboxes
		RestringeExpoMP: false,
		OcultCantCons: false,
		DescExtraAmePartes: false,
		InCambioRegDesc: false,
		DescNoContemCant: false,
		ValidaCantparCanDes: false,
		SolicitarPswdActual: false,
		SolicitarContrasenaAdministrador: false,

		// Mexicana
		PorParteClaseMex: 'parte',
		CodigoBarras: false,
		CantPNCodBar: false,
		DTACeroCodBar: false,
		NumParteMex: false,
		PaisOrigenMex: false,
		FraccionExp: false,
		TipoFraccMex: false,
		TasaFraccMex: false,
		CostoUnitMex: false,
		OrdenCompMex: false,
		UMEquivalenteMex: false,
		ParteComplementariaMex: false,
		ParteCompleMexPartida: false,
		IncluirFracAmeBil: false,
		ImprimirLote: false,
		ImprimirNumEntrada: false,
		OcultarEmpaqueMex: false,
		OcultarFechaHora: false,
		ValorDllsMexPesos: false,
		CostoUnitMPMex: false,
		OcultaColVA: false,
		FirmaFMex: '',

		// Americana
		TomarValorMexEnFacAme: false,
		MuestraFree: false,
		NumParteAme: false,
		CodigoSCAC: false,
		ValorPacking1Dlls: false,
		PrefijoFraccMult: false,
		PaisOpcAme: false,
		CostAmePaisParte: false,
		AsignaFracc9801: false,
		ValorExcFracc9801: null,
		CalcCostosAmeBaseMex: false,
		CostosAmePais: false,
		ImprimirOrdenVenta: false,
		CalcularValoresAmericanosEnBaseAPartida: false,
		PaisOrigenAme: false,
		FraccionAme: false,
		UMEquivalenteAme: false,
		FDAInformacionAME: false,
		OrdenCompAme: false,
		OcultarEmpaqueAme: false,
		LocDecimalesPesosAmericana: null,
		LocDecimalesCantidadAme: null,
		LocDecimalesCostosAme: null,
		LocDecimalesValoresAme: null,
		FirmaFAme: '',
		InfoAdicional: '',

		// Desperdicio
		FormaDesperdicio: '0',

		// Packing
		LocLeyendaPacking: '',
		PackingOrdenVenta: false,
		IncluirLineaDelPO: false,
		PackingPedClave: false,

		// SCAF specific
		ValFactTC: 'TCE',
		pagoimpuesto: 'no',
		formapago: '',
		SolicitarPswdDesactualizar: false,
		ActualizarPartePartida: false
	};

	if (!formData) formData = { ...defaultFormData };

	$effect.pre(() => {
		if (formData) {
			for (const key in defaultFormData) {
				if (formData[key] === undefined) {
					formData[key] = defaultFormData[key as keyof typeof defaultFormData];
				}
			}
		}
	});

	let activeSubTab = $state('general');

	$effect(() => {
		// Reset active tab if switching systems to prevent blank content
		if (activeSystem === 'qsisgen' && ['general2', 'desperdicio'].includes(activeSubTab)) {
			activeSubTab = 'general';
		}
	});
</script>

<div class="w-full">
	<Tabs.Root bind:value={activeSubTab} class="flex flex-col">
		<div class="mb-4 w-full overflow-x-auto pb-2">
			<Tabs.List class="inline-flex w-full rounded-md bg-muted/60 p-1 md:flex">
				<Tabs.Trigger value="general" class="flex-1 text-xs">General</Tabs.Trigger>
				{#if activeSystem !== 'qsisgen'}
					<Tabs.Trigger value="general2" class="flex-1 text-xs">General 2</Tabs.Trigger>
				{/if}
				<Tabs.Trigger value="mexicana" class="flex-1 text-xs">Fact. Mexicana</Tabs.Trigger>
				<Tabs.Trigger value="americana" class="flex-1 text-xs">Fact. Americana</Tabs.Trigger>
				{#if activeSystem !== 'qsisgen'}
					<Tabs.Trigger value="desperdicio" class="flex-1 text-xs">Desperdicio</Tabs.Trigger>
				{/if}
				<Tabs.Trigger value="packing" class="flex-1 text-xs">Packing</Tabs.Trigger>
			</Tabs.List>
		</div>

		<!-- ===== GENERAL ===== -->
		<Tabs.Content value="general" class="space-y-6">
			{#if activeSystem === 'qsisgen'}
				<!-- SCAF General Tab -->
				<div class="space-y-4">
					<!-- Top Section (Decimales + Asignación/Partidas) -->
					<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
						<!-- Decimales -->
						<div class="space-y-4 rounded-md border bg-muted/10 p-4">
							<h4 class="border-b pb-2 text-sm font-semibold text-muted-foreground uppercase text-red-700">
								Número de Decimales en los Campos
							</h4>
							<div class="grid grid-cols-2 gap-x-4 gap-y-3 pt-2">
								<div class="flex items-center justify-between">
									<Label class="text-xs">De Peso Neto y Bruto:</Label>
									<Input type="number" bind:value={formData.DecimalesPeso} class="h-8 w-16 text-sm" />
								</div>
								<div class="flex items-center justify-between">
									<Label class="text-xs">De Cantidades:</Label>
									<Input type="number" bind:value={formData.DecimalesCant} class="h-8 w-16 text-sm" />
								</div>
								<div class="flex items-center justify-between">
									<Label class="text-xs">De Costos Unitarios:</Label>
									<Input type="number" bind:value={formData.DecimalesCosto} class="h-8 w-16 text-sm" />
								</div>
								<div class="flex items-center justify-between">
									<Label class="text-xs">De Valores:</Label>
									<Input type="number" bind:value={formData.DecimalesValor} class="h-8 w-16 text-sm" />
								</div>
							</div>
						</div>

						<!-- Asignación TC y Partidas -->
						<div class="flex flex-col gap-4">
							<!-- TC -->
							<div class="space-y-2 rounded-md border bg-muted/10 p-4 pb-3">
								<Label class="text-xs font-semibold text-muted-foreground uppercase">
									Asigna Valores a partidas en Base al T.C de:
								</Label>
								<RadioGroup
									value={formData.ValFactTC}
									onValueChange={(v) => (formData.ValFactTC = v)}
									class="flex gap-6 justify-center mt-2"
								>
									<div class="flex items-center gap-2">
										<RadioGroupItem value="PER_LINE" id="cr_tc_imp" />
										<Label for="cr_tc_imp" class="text-sm">Importación</Label>
									</div>
									<div class="flex items-center gap-2">
										<RadioGroupItem value="TCE" id="cr_tc_exp" />
										<Label for="cr_tc_exp" class="text-sm">Exportación</Label>
									</div>
								</RadioGroup>
							</div>

							<!-- Partidas -->
							<div class="space-y-2 rounded-md border bg-muted/10 p-4 pb-3 flex-1 flex flex-col justify-center">
								<Label class="text-xs font-semibold text-muted-foreground uppercase mb-1">Partidas</Label>
								<div class="flex items-center gap-6">
									<div class="space-y-1">
										<Label class="text-xs text-muted-foreground">Se Pagó el Impuesto</Label>
										<RadioGroup
											value={formData.pagoimpuesto}
											onValueChange={(v) => (formData.pagoimpuesto = v)}
											class="flex gap-4"
										>
											<div class="flex items-center gap-2">
												<RadioGroupItem value="si" id="cr_pago_si" />
												<Label for="cr_pago_si" class="text-sm">Si</Label>
											</div>
											<div class="flex items-center gap-2">
												<RadioGroupItem value="no" id="cr_pago_no" />
												<Label for="cr_pago_no" class="text-sm">No</Label>
											</div>
										</RadioGroup>
									</div>
									<div class="flex items-center gap-2">
										<Label class="text-xs text-muted-foreground whitespace-nowrap">Forma Pago:</Label>
										<Input bind:value={formData.formapago} class="h-8 w-20 text-sm" />
									</div>
								</div>
							</div>
						</div>
					</div>

					<!-- Middle Section (Límites) -->
					<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
						<!-- Mínimos -->
						<div class="space-y-4 rounded-md border bg-muted/10 p-4">
							<h4 class="border-b pb-2 text-sm font-semibold text-muted-foreground uppercase text-red-700">
								Mínimos límites para actualizar facturas
							</h4>
							<div class="space-y-3 pt-2">
								<div class="flex flex-col sm:flex-row sm:items-center justify-between gap-1">
									<Label class="text-xs">Cantidad Mín. para Exportar:</Label>
									<Input type="number" bind:value={formData.CantLimiteMin} class="h-8 w-32 text-sm text-right" />
								</div>
								<div class="flex flex-col sm:flex-row sm:items-center justify-between gap-1">
									<Label class="text-xs">Peso Mín. para Exportar:</Label>
									<Input type="number" bind:value={formData.PesoLimiteMin} class="h-8 w-32 text-sm text-right" />
								</div>
								<div class="flex flex-col sm:flex-row sm:items-center justify-between gap-1">
									<Label class="text-xs">Valor Mín. para Exportar:</Label>
									<Input type="number" bind:value={formData.ValorLimiteMin} class="h-8 w-32 text-sm text-right" />
								</div>
							</div>
						</div>

						<!-- Máximos -->
						<div class="space-y-4 rounded-md border bg-muted/10 p-4">
							<h4 class="border-b pb-2 text-sm font-semibold text-muted-foreground uppercase text-red-700">
								Máximos límites para actualizar facturas
							</h4>
							<div class="space-y-3 pt-2">
								<div class="flex flex-col sm:flex-row sm:items-center justify-between gap-1">
									<Label class="text-xs">Cantidad Max. para Exportar:</Label>
									<Input type="number" bind:value={formData.CantLimite} class="h-8 w-32 text-sm text-right" />
								</div>
								<div class="flex flex-col sm:flex-row sm:items-center justify-between gap-1">
									<Label class="text-xs">Peso Max. para Exportar:</Label>
									<Input type="number" bind:value={formData.PesoLimite} class="h-8 w-32 text-sm text-right" />
								</div>
								<div class="flex flex-col sm:flex-row sm:items-center justify-between gap-1">
									<Label class="text-xs">Valor Max. para Exportar:</Label>
									<Input type="number" bind:value={formData.ValorLimite} class="h-8 w-32 text-sm text-right" />
								</div>
							</div>
						</div>
					</div>

					<!-- Bottom Section (Checkboxes) -->
					<div class="space-y-3 rounded-md border bg-muted/10 p-4">
						<div class="flex items-center gap-2">
							<Checkbox id="cr_scaf_VentQueueAct" bind:checked={formData.VentQueueAct} />
							<Label for="cr_scaf_VentQueueAct" class="text-sm">Mostrar la ventana de la descarga de la factura</Label>
						</div>
						<div class="flex items-center gap-2">
							<Checkbox id="cr_scaf_ColCantPorPeso" bind:checked={formData.ColCantPorPeso} />
							<Label for="cr_scaf_ColCantPorPeso" class="text-sm">Reemplaza la columna cantidad por la columna de Peso Neto.</Label>
						</div>
						
						<!-- Row with two auth checkboxes side by side -->
						<div class="flex flex-col md:flex-row gap-8">
							<div class="flex items-center gap-2">
								<Checkbox id="cr_scaf_SolicitarPswdActual" bind:checked={formData.SolicitarPswdActual} />
								<Label for="cr_scaf_SolicitarPswdActual" class="text-sm">Solicitar Autorización para Actualizar Facturas.</Label>
							</div>
							<div class="flex items-center gap-2">
								<Checkbox id="cr_scaf_SolicitarPswdDesactualizar" bind:checked={formData.SolicitarPswdDesactualizar} />
								<Label for="cr_scaf_SolicitarPswdDesactualizar" class="text-sm">Solicitar Autorización para Desactualizar Facturas.</Label>
							</div>
						</div>

						<div class="flex items-center gap-2">
							<Checkbox id="cr_scaf_SolicitarContrasenaAdministrador" bind:checked={formData.SolicitarContrasenaAdministrador} />
							<Label for="cr_scaf_SolicitarContrasenaAdministrador" class="text-sm">Solicitar Autorización para Pasar por Alto la Validacion de Tipo de Cambio de Fecha de Pago de Pedimento</Label>
						</div>
					</div>
				</div>
			{:else}
				<!-- SCAII General Tab -->
				<div class="space-y-6">
					<!-- Reporte de descarga -->
					<div class="space-y-4 rounded-md border bg-muted/10 p-4">
						<h4 class="border-b pb-2 text-sm font-semibold text-muted-foreground uppercase">
							Reporte de descarga según el tipo de factura
						</h4>
						<p class="text-xs text-muted-foreground italic">Incluye en la columna descripción:</p>
						<div class="grid grid-cols-1 gap-3 pt-1 md:grid-cols-2">
							<div class="flex items-center gap-2">
								<Checkbox id="cr_FraccMexDes" bind:checked={formData.FraccMexDes} />
								<Label for="cr_FraccMexDes" class="text-sm">La Fracción Arancelaria</Label>
							</div>
							<div class="flex items-center gap-2">
								<Checkbox id="cr_TipoFraccMexDes" bind:checked={formData.TipoFraccMexDes} />
								<Label for="cr_TipoFraccMexDes" class="text-sm">Preferencia Arancelaria</Label>
							</div>
							<div class="flex items-center gap-2">
								<Checkbox id="cr_ColValorDes" bind:checked={formData.ColValorDes} />
								<Label for="cr_ColValorDes" class="text-sm">Ocultar la Columna de Valor del Reporte</Label>
							</div>
							<div class="flex items-center gap-2">
								<Checkbox id="cr_ColPesoDes" bind:checked={formData.ColPesoDes} />
								<Label for="cr_ColPesoDes" class="text-sm">Ocultar la Columna de Peso Neto del Reporte</Label>
							</div>
						</div>
					</div>

					<!-- Número de decimales -->
					<div class="space-y-4 rounded-md border bg-muted/10 p-4">
						<h4 class="border-b pb-2 text-sm font-semibold text-muted-foreground uppercase">
							Número de Decimales en los Campos
						</h4>
						<div class="grid grid-cols-1 gap-4 pt-2 md:grid-cols-2 lg:grid-cols-4">
							<div class="space-y-1.5">
								<Label class="text-xs">De Peso Neto y Bruto</Label>
								<Input type="number" bind:value={formData.DecimalesPeso} class="h-8 text-sm" />
							</div>
							<div class="space-y-1.5">
								<Label class="text-xs">De Cantidades</Label>
								<Input type="number" bind:value={formData.DecimalesCant} class="h-8 text-sm" />
							</div>
							<div class="space-y-1.5">
								<Label class="text-xs">De Costos Unitarios</Label>
								<Input type="number" bind:value={formData.DecimalesCosto} class="h-8 text-sm" />
							</div>
							<div class="space-y-1.5">
								<Label class="text-xs">De Valores</Label>
								<Input type="number" bind:value={formData.DecimalesValor} class="h-8 text-sm" />
							</div>
						</div>
					</div>

			<!-- Formas de cálculo -->
			<div class="space-y-4 rounded-md border bg-muted/10 p-4">
				<h4 class="border-b pb-2 text-sm font-semibold text-muted-foreground uppercase">
					Formas del Cálculo de Valores y V.A.
				</h4>
				<div class="grid grid-cols-1 gap-6 pt-2 md:grid-cols-2">
					<!-- BaseCostoMPoTotal -->
					<div class="space-y-2">
						<Label class="text-xs font-semibold"
							>Cálculo del valor con base en costo capturado</Label
						>
						<RadioGroup
							value={formData.BaseCostoMPoTotal}
							onValueChange={(v) => (formData.BaseCostoMPoTotal = v)}
							class="flex gap-4"
						>
							<div class="flex items-center gap-2">
								<RadioGroupItem value="materia_prima" id="cr_base_mp" />
								<Label for="cr_base_mp" class="text-sm">Materia Prima</Label>
							</div>
							<div class="flex items-center gap-2">
								<RadioGroupItem value="valor_total" id="cr_base_vt" />
								<Label for="cr_base_vt" class="text-sm">Valor Total</Label>
							</div>
						</RadioGroup>
					</div>

					<!-- CalVATotAgreMP -->
					<div class="space-y-2" class:opacity-50={formData.BaseCostoMPoTotal !== 'valor_total'}>
						<Label class="text-xs font-semibold">Fórmula de cálculo cuando es por valor total</Label
						>
						<RadioGroup
							value={formData.CalVATotAgreMP}
							onValueChange={(v) => (formData.CalVATotAgreMP = v)}
							class="flex flex-col gap-2"
						>
							<div class="flex items-start gap-2">
								<RadioGroupItem value="mp_formula" id="cr_calva_mp" class="mt-0.5" />
								<Label for="cr_calva_mp" class="text-sm leading-tight"
									>MP = Valor total − Valor Agregado</Label
								>
							</div>
							<div class="flex items-start gap-2">
								<RadioGroupItem value="va_formula" id="cr_calva_va" class="mt-0.5" />
								<Label for="cr_calva_va" class="text-sm leading-tight"
									>VA = Valor Total − Valor Descarga</Label
								>
							</div>
						</RadioGroup>
					</div>
				</div>

				<div class="mt-2 grid grid-cols-1 gap-3 border-t pt-4 md:grid-cols-2">
					<div class="flex items-center gap-2">
						<Checkbox id="cr_CalVABaseCapt" bind:checked={formData.CalVABaseCapt} />
						<Label for="cr_CalVABaseCapt" class="text-sm"
							>Cálculo del Valor Agregado en Base a lo capturado</Label
						>
					</div>
					<div class="flex items-center gap-2">
						<Checkbox id="cr_CalEmpaqueBaseCapt" bind:checked={formData.CalEmpaqueBaseCapt} />
						<Label for="cr_CalEmpaqueBaseCapt" class="text-sm"
							>Cálculo del Valor Empaque en Base a lo capturado</Label
						>
					</div>
					<div class="flex items-center gap-2">
						<Checkbox id="cr_CalPesoBaseDescarga" bind:checked={formData.CalPesoBaseDescarga} />
						<Label for="cr_CalPesoBaseDescarga" class="text-sm"
							>Cálculo de Pesos Neto/Bruto en Base a lo Descargado</Label
						>
					</div>
				</div>

				<!-- Combinación de Parámetros -->
				<div class="mt-2 space-y-2 border-t pt-4">
					<Label class="text-xs font-semibold text-muted-foreground uppercase"
						>Combinación de Parámetros</Label
					>
					<RadioGroup
						value={formData.LocCombinacionParametro}
						onValueChange={(v) => (formData.LocCombinacionParametro = v)}
						class="flex flex-wrap gap-3"
					>
						{#each ['F1', 'F2', 'F3', 'F4', 'F5', 'F6'] as opt}
							<div class="flex items-center gap-1.5">
								<RadioGroupItem value={opt} id="cr_comb_{opt}" />
								<Label for="cr_comb_{opt}" class="text-sm">{opt}</Label>
							</div>
						{/each}
					</RadioGroup>
				</div>
			</div>

			<!-- Opciones de descarga al actualizar -->
			<div class="space-y-4 rounded-md border bg-muted/10 p-4">
				<h4 class="border-b pb-2 text-sm font-semibold text-muted-foreground uppercase">
					Opciones de Descarga al Actualizar Factura
				</h4>
				<div class="grid grid-cols-1 gap-3 pt-2 md:grid-cols-2">
					<div class="flex items-center gap-2">
						<Checkbox id="cr_DescargaSust" bind:checked={formData.DescargaSust} />
						<Label for="cr_DescargaSust" class="text-sm"
							>1) En caso de insuficiencias descargar por Sustituto</Label
						>
					</div>
					<div class="flex items-center gap-2">
						<Checkbox id="cr_DescargaClase" bind:checked={formData.DescargaClase} />
						<Label for="cr_DescargaClase" class="text-sm"
							>2) En caso de insuficiencias Descargar por Clase</Label
						>
					</div>
					<div class="flex items-center gap-2">
						<Checkbox id="cr_DescargaDef" bind:checked={formData.DescargaDef} />
						<Label for="cr_DescargaDef" class="text-sm"
							>3) Descarga de definitivo en caso de insuficiencia TEM</Label
						>
					</div>
					<div class="flex items-center gap-2">
						<Checkbox id="cr_VentQueueAct" bind:checked={formData.VentQueueAct} />
						<Label for="cr_VentQueueAct" class="text-sm"
							>Mostrar la ventana de la descarga de la factura</Label
						>
					</div>
					<div class="flex items-center gap-2">
						<Checkbox id="cr_ColCantPorPeso" bind:checked={formData.ColCantPorPeso} />
						<Label for="cr_ColCantPorPeso" class="text-sm"
							>Remplaza Columna Cantidad por la de Peso Neto</Label
						>
					</div>
				</div>
			</div>
			</div>
			{/if}
		</Tabs.Content>

		<!-- ===== GENERAL 2 ===== -->
		<Tabs.Content value="general2" class="space-y-6">
			<!-- Límites min/max en grid 2 col -->
			<div class="grid grid-cols-1 gap-4 md:grid-cols-2">
				<!-- Mínimos -->
				<div class="space-y-4 rounded-md border bg-muted/10 p-4">
					<h4 class="border-b pb-2 text-sm font-semibold text-muted-foreground uppercase">
						Mínimos límites para actualizar facturas
					</h4>
					<div class="space-y-3 pt-2">
						<div class="space-y-1.5">
							<Label class="text-xs">Cantidad Mínima para Exportar</Label>
							<Input type="number" bind:value={formData.CantLimiteMin} class="h-8 text-sm" />
						</div>
						<div class="space-y-1.5">
							<Label class="text-xs">Peso Mínimo para Exportar</Label>
							<Input type="number" bind:value={formData.PesoLimiteMin} class="h-8 text-sm" />
						</div>
						<div class="space-y-1.5">
							<Label class="text-xs">Valor Mínimo para Exportar</Label>
							<Input type="number" bind:value={formData.ValorLimiteMin} class="h-8 text-sm" />
						</div>
					</div>
				</div>

				<!-- Máximos -->
				<div class="space-y-4 rounded-md border bg-muted/10 p-4">
					<h4 class="border-b pb-2 text-sm font-semibold text-muted-foreground uppercase">
						Máximos límites para actualizar facturas
					</h4>
					<div class="space-y-3 pt-2">
						<div class="space-y-1.5">
							<Label class="text-xs">Cantidad Máxima para Exportar</Label>
							<Input type="number" bind:value={formData.CantLimite} class="h-8 text-sm" />
						</div>
						<div class="space-y-1.5">
							<Label class="text-xs">Peso Máximo para Exportar</Label>
							<Input type="number" bind:value={formData.PesoLimite} class="h-8 text-sm" />
						</div>
						<div class="space-y-1.5">
							<Label class="text-xs">Valor Máximo para Exportar</Label>
							<Input type="number" bind:value={formData.ValorLimite} class="h-8 text-sm" />
						</div>
					</div>
				</div>
			</div>

			<!-- Límite Peso Neto diferencial -->
			<div class="space-y-1.5 rounded-md border bg-muted/10 p-4">
				<Label class="text-xs font-semibold text-muted-foreground uppercase"
					>Límite entre Peso Neto Fac vs Peso Neto Descarga</Label
				>
				<Input type="number" bind:value={formData.PesoNetoDesDifFac} class="h-8 max-w-xs text-sm" />
			</div>

			<!-- Opciones -->
			<div class="space-y-4 rounded-md border bg-muted/10 p-4">
				<h4 class="border-b pb-2 text-sm font-semibold text-muted-foreground uppercase">
					Otras Opciones
				</h4>
				<div class="grid grid-cols-1 gap-3 pt-2 md:grid-cols-2">
					{#if activeSystem === 'qsisgen'}
						<!-- SCAF Simplified Options -->
						<div class="flex items-center gap-2">
							<Checkbox id="scaf_ActualizarParte_cr" bind:checked={formData.ActualizarPartePartida} />
							<Label for="scaf_ActualizarParte_cr" class="text-sm">Actualizar datos del número de parte en base de a la captura de las partidas</Label>
						</div>
						<div class="flex items-center gap-2">
							<Checkbox id="scaf_SolicitarAuth_cr" bind:checked={formData.SolicitarContrasenaAdministrador} />
							<Label for="scaf_SolicitarAuth_cr" class="text-sm font-bold">
								Solicitar autorizacion para pasar por alto la validacion de tipo de cambio de fecha de pago de pedimento
							</Label>
						</div>
					{:else}
						<!-- SCAII Original Options -->
						<div class="flex items-start gap-2">
							<Checkbox
								id="cr_RestringeExpoMP"
								bind:checked={formData.RestringeExpoMP}
								class="mt-0.5"
							/>
							<Label for="cr_RestringeExpoMP" class="text-sm leading-snug"
								>Restringe la exportación de Materias Primas (excepto Material EV y EM)</Label
							>
						</div>
						<div class="flex items-center gap-2">
							<Checkbox id="cr_OcultCantCons" bind:checked={formData.OcultCantCons} />
							<Label for="cr_OcultCantCons" class="text-sm"
								>Oculta la Columna Cantidad en el Consolidado</Label
							>
						</div>
						<div class="flex items-start gap-2">
							<Checkbox
								id="cr_DescExtraAmePartes"
								bind:checked={formData.DescExtraAmePartes}
								class="mt-0.5"
							/>
							<Label for="cr_DescExtraAmePartes" class="text-sm leading-snug"
								>Asignar el campo de número de parte desperdicio de partes, en la Descripción Extra
								Ame</Label
							>
						</div>
						<div class="flex items-start gap-2">
							<Checkbox
								id="cr_InCambioRegDesc"
								bind:checked={formData.InCambioRegDesc}
								class="mt-0.5"
							/>
							<Label for="cr_InCambioRegDesc" class="text-sm leading-snug"
								>Incluye Descargos en Cambios de Régimen Factura Mex. Vertical por Orden Captura</Label
							>
						</div>
						<div class="flex items-start gap-2">
							<Checkbox
								id="cr_DescNoContemCant"
								bind:checked={formData.DescNoContemCant}
								class="mt-0.5"
							/>
							<Label for="cr_DescNoContemCant" class="text-sm leading-snug"
								>No contempla la cantidad de la partida y se va directo al BOM</Label
							>
						</div>
						<div class="flex items-start gap-2">
							<Checkbox
								id="cr_ValidaCantparCanDes"
								bind:checked={formData.ValidaCantparCanDes}
								class="mt-0.5"
							/>
							<Label for="cr_ValidaCantparCanDes" class="text-sm leading-snug"
								>Valida Totales de las Cantidades de las Partidas vs las Cantidades de las Descargas</Label
							>
						</div>
						<div class="flex items-center gap-2">
							<Checkbox id="cr_SolicitarPswdActual" bind:checked={formData.SolicitarPswdActual} />
							<Label for="cr_SolicitarPswdActual" class="text-sm"
								>Solicitar Autorización para Actualizar Facturas</Label
							>
						</div>
						<div class="flex items-start gap-2">
							<Checkbox
								id="cr_SolicitarContrasenaAdministrador"
								bind:checked={formData.SolicitarContrasenaAdministrador}
								class="mt-0.5"
							/>
							<Label for="cr_SolicitarContrasenaAdministrador" class="text-sm leading-snug"
								>Solicitar Autorización para Pasar por Alto la Validación de Temporalidad en Base a la
								Fecha de Pago de Pedimento</Label
							>
						</div>
					{/if}
				</div>
			</div>
		</Tabs.Content>

		<!-- ===== FACTURA MEXICANA ===== -->
		<Tabs.Content value="mexicana" class="space-y-6">
			{#if activeSystem === 'qsisgen'}
				<!-- SCAF LAYOUT (Modern 3-Column) -->
				<div class="space-y-6">
					<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
						<!-- Panel izquierdo: Código de barras -->
						<div class="space-y-4 border rounded-md p-4 bg-muted/10 h-max max-w-sm">
							<h4 class="text-sm font-semibold text-muted-foreground uppercase border-b pb-2 text-red-700">Código de Barras</h4>
							<div class="space-y-3 pt-2">
								<div class="flex items-start gap-2">
									<Checkbox id="cr_scaf_CodigoBarras" bind:checked={formData.CodigoBarras} class="mt-0.5" />
									<Label for="cr_scaf_CodigoBarras" class="text-sm leading-snug">Imprimir código de barras en la parte inferior</Label>
								</div>
								<div class="flex items-start gap-2">
									<Checkbox id="cr_scaf_CantPNCodBar" bind:checked={formData.CantPNCodBar} class="mt-0.5" />
									<Label for="cr_scaf_CantPNCodBar" class="text-sm leading-snug">Sustituir la Cantidad Por el Peso Neto (Solo Parte de Factura)</Label>
								</div>
							</div>
						</div>

						<!-- Panel derecho: Incluir en descripción -->
						<div class="space-y-4 border rounded-md p-4 bg-muted/10 h-max max-w-sm">
							<h4 class="text-sm font-semibold text-muted-foreground uppercase border-b pb-2 text-red-700">Incluir en Descripcion</h4>
							<div class="space-y-3 pt-2">
								<div class="flex items-center gap-2">
									<Checkbox id="cr_scaf_NumParteMex" bind:checked={formData.NumParteMex} />
									<Label for="cr_scaf_NumParteMex" class="text-sm">El Número de Parte.</Label>
								</div>
								<div class="flex items-center gap-2">
									<Checkbox id="cr_scaf_PaisOrigenMex" bind:checked={formData.PaisOrigenMex} />
									<Label for="cr_scaf_PaisOrigenMex" class="text-sm">El País de Origen.</Label>
								</div>
								<div class="flex items-center gap-2">
									<Checkbox id="cr_scaf_FraccionExp" bind:checked={formData.FraccionExp} />
									<Label for="cr_scaf_FraccionExp" class="text-sm">La Fracción Arancelaria.</Label>
								</div>
								<div class="flex items-center gap-2">
									<Checkbox id="cr_scaf_TipoFraccMex" bind:checked={formData.TipoFraccMex} />
									<Label for="cr_scaf_TipoFraccMex" class="text-sm">Preferencia de la Fracción.</Label>
								</div>
								<div class="flex items-center gap-2">
									<Checkbox id="cr_scaf_TasaFraccMex" bind:checked={formData.TasaFraccMex} />
									<Label for="cr_scaf_TasaFraccMex" class="text-sm">La Tasa de la Fracción.</Label>
								</div>
								<div class="flex items-center gap-2">
									<Checkbox id="cr_scaf_CostoUnitMex" bind:checked={formData.CostoUnitMex} />
									<Label for="cr_scaf_CostoUnitMex" class="text-sm">El Costo Unitario.</Label>
								</div>
								<div class="flex items-center gap-2">
									<Checkbox id="cr_scaf_OrdenCompMex" bind:checked={formData.OrdenCompMex} />
									<Label for="cr_scaf_OrdenCompMex" class="text-sm">La Orden de venta <span class="text-xs text-muted-foreground">(Facturas y Packing List)</span></Label>
								</div>
								<div class="flex items-center gap-4">
									<div class="flex items-center gap-2">
										<Checkbox id="cr_scaf_ImprimirLote" bind:checked={formData.ImprimirLote} />
										<Label for="cr_scaf_ImprimirLote" class="text-sm">Lote</Label>
									</div>
									<div class="flex items-center gap-2">
										<Checkbox id="cr_scaf_ImprimirNumEntrada" bind:checked={formData.ImprimirNumEntrada} />
										<Label for="cr_scaf_ImprimirNumEntrada" class="text-sm">Num. Entrada</Label>
									</div>
								</div>
							</div>
						</div>
					</div>

					<div class="space-y-4 pt-4">
						<div class="space-y-2">
							<Label for="cr_scaf_FirmaFMex" class="text-sm font-semibold text-foreground">Firma en Factura:</Label>
							<Textarea id="cr_scaf_FirmaFMex" bind:value={formData.FirmaFMex} class="h-28 w-full max-w-2xl resize-y" />
						</div>
					</div>
				</div>
			{:else}
				<!-- SCAII LAYOUT -->
				<!-- Imprimir por -->
				<div class="space-y-4 rounded-md border bg-muted/10 p-4">
					<h4 class="text-sm font-semibold text-muted-foreground uppercase">Imprimir por</h4>
					<RadioGroup
						value={formData.PorParteClaseMex}
						onValueChange={(v) => (formData.PorParteClaseMex = v)}
						class="flex gap-4"
					>
						<div class="flex items-center gap-2">
							<RadioGroupItem value="parte" id="cr_mex_parte" />
							<Label for="cr_mex_parte" class="text-sm">Parte</Label>
						</div>
						<div class="flex items-center gap-2">
							<RadioGroupItem value="clase" id="cr_mex_clase" />
							<Label for="cr_mex_clase" class="text-sm">Clase</Label>
						</div>
					</RadioGroup>
				</div>

				<!-- Grid: Código de barras (izq) + Incluir en descripción (der) -->
				<div class="grid grid-cols-1 gap-4 md:grid-cols-2">
					<!-- Código de barras -->
					<div class="space-y-3 rounded-md border bg-muted/10 p-4">
						<h4 class="border-b pb-2 text-sm font-semibold text-muted-foreground uppercase">
							Código de Barras
						</h4>
						<div class="flex items-center gap-2">
							<Checkbox id="cr_CodigoBarras" bind:checked={formData.CodigoBarras} />
							<Label for="cr_CodigoBarras" class="text-sm"
								>Imprimir código de barras en la parte inferior</Label
							>
						</div>
						<div class="flex items-center gap-2">
							<Checkbox id="cr_CantPNCodBar" bind:checked={formData.CantPNCodBar} />
							<Label for="cr_CantPNCodBar" class="text-sm"
								>Sustituir la Cantidad por el Peso Neto</Label
							>
						</div>
						<div class="flex items-center gap-2">
							<Checkbox id="cr_DTACeroCodBar" bind:checked={formData.DTACeroCodBar} />
							<Label for="cr_DTACeroCodBar" class="text-sm"
								>Sustituir el valor del DTA por el valor cero</Label
							>
						</div>

						<!-- Mostrar en la factura (debajo de código de barras) -->
						<h4 class="mt-4 border-b pt-4 pb-2 text-sm font-semibold text-muted-foreground uppercase">
							Mostrar en la Factura
						</h4>
						<div class="flex items-start gap-2">
							<Checkbox
								id="cr_ValorDllsMexPesos"
								bind:checked={formData.ValorDllsMexPesos}
								class="mt-0.5"
							/>
							<Label for="cr_ValorDllsMexPesos" class="text-sm leading-snug"
								>Total en Dólares al T.C. de la Factura Expo (aplica en moneda nacional)</Label
							>
						</div>
						<div class="flex items-center gap-2">
							<Checkbox id="cr_CostoUnitMPMex" bind:checked={formData.CostoUnitMPMex} />
							<Label for="cr_CostoUnitMPMex" class="text-sm">Costo Unitario Materia Prima</Label>
						</div>
						<div class="flex items-center gap-2">
							<Checkbox id="cr_OcultaColVA" bind:checked={formData.OcultaColVA} />
							<Label for="cr_OcultaColVA" class="text-sm">Ocultar Columna de Valor Agregado</Label>
						</div>
					</div>

					<!-- Incluir en descripción -->
					<div class="space-y-3 rounded-md border bg-muted/10 p-4">
						<h4 class="border-b pb-2 text-sm font-semibold text-muted-foreground uppercase">
							Incluir en la Columna de Descripción
						</h4>
						<div class="flex items-center gap-2">
							<Checkbox id="cr_NumParteMex" bind:checked={formData.NumParteMex} />
							<Label for="cr_NumParteMex" class="text-sm">El Número de Parte</Label>
						</div>
						<div class="flex items-center gap-2">
							<Checkbox id="cr_PaisOrigenMex" bind:checked={formData.PaisOrigenMex} />
							<Label for="cr_PaisOrigenMex" class="text-sm">El País de Origen</Label>
						</div>
						<div class="flex items-center gap-2">
							<Checkbox id="cr_FraccionExp" bind:checked={formData.FraccionExp} />
							<Label for="cr_FraccionExp" class="text-sm">La Fracción Arancelaria</Label>
						</div>
						<div class="flex items-center gap-2">
							<Checkbox id="cr_TipoFraccMex" bind:checked={formData.TipoFraccMex} />
							<Label for="cr_TipoFraccMex" class="text-sm">Preferencia de la Fracción</Label>
						</div>
						<div class="flex items-center gap-2">
							<Checkbox id="cr_TasaFraccMex" bind:checked={formData.TasaFraccMex} />
							<Label for="cr_TasaFraccMex" class="text-sm">La Tasa de la Fracción</Label>
						</div>
						<div class="flex items-center gap-2">
							<Checkbox id="cr_CostoUnitMex" bind:checked={formData.CostoUnitMex} />
							<Label for="cr_CostoUnitMex" class="text-sm">El Costo Unitario</Label>
						</div>
						<div class="flex items-start gap-2">
							<Checkbox id="cr_OrdenCompMex" bind:checked={formData.OrdenCompMex} class="mt-0.5" />
							<Label for="cr_OrdenCompMex" class="text-sm leading-snug"
								>El No. de Orden de Venta (factura por orden de captura)</Label
							>
						</div>
						<div class="flex items-center gap-2">
							<Checkbox id="cr_UMEquivalenteMex" bind:checked={formData.UMEquivalenteMex} />
							<Label for="cr_UMEquivalenteMex" class="text-sm">La U.M. Equivalente</Label>
						</div>

						<!-- Parte Complementaria -->
						<div class="space-y-2 border-t pt-3">
							<p class="text-xs font-semibold text-muted-foreground uppercase">
								Parte Complementaria de:
							</p>
							<div class="flex items-center gap-2">
								<Checkbox
									id="cr_ParteComplementariaMex"
									bind:checked={formData.ParteComplementariaMex}
								/>
								<Label for="cr_ParteComplementariaMex" class="text-sm">Número de parte</Label>
							</div>
							<div class="flex items-center gap-2">
								<Checkbox
									id="cr_ParteCompleMexPartida"
									bind:checked={formData.ParteCompleMexPartida}
								/>
								<Label for="cr_ParteCompleMexPartida" class="text-sm">La partida</Label>
							</div>
						</div>

						<div class="flex items-center gap-2">
							<Checkbox id="cr_IncluirFracAmeBil" bind:checked={formData.IncluirFracAmeBil} />
							<Label for="cr_IncluirFracAmeBil" class="text-sm">La Fracción Americana</Label>
						</div>
						<div class="flex items-center gap-2">
							<Checkbox id="cr_ImprimirLote" bind:checked={formData.ImprimirLote} />
							<Label for="cr_ImprimirLote" class="text-sm">Lote</Label>
						</div>
						<div class="flex items-center gap-2">
							<Checkbox id="cr_ImprimirNumEntrada" bind:checked={formData.ImprimirNumEntrada} />
							<Label for="cr_ImprimirNumEntrada" class="text-sm">Núm. Entrada</Label>
						</div>
					</div>
				</div>

				<!-- Ocultar en factura -->
				<div class="space-y-3 rounded-md border bg-muted/10 p-4">
					<h4 class="border-b pb-2 text-sm font-semibold text-muted-foreground uppercase">
						Ocultar en Factura
					</h4>
					<div class="grid grid-cols-1 gap-3 pt-1 md:grid-cols-2">
						<div class="flex items-center gap-2">
							<Checkbox id="cr_OcultarEmpaqueMex" bind:checked={formData.OcultarEmpaqueMex} />
							<Label for="cr_OcultarEmpaqueMex" class="text-sm">El Material Tipo (EM)</Label>
						</div>
						<div class="flex items-center gap-2">
							<Checkbox id="cr_OcultarFechaHora" bind:checked={formData.OcultarFechaHora} />
							<Label for="cr_OcultarFechaHora" class="text-sm">Ocultar Fecha y Hora</Label>
						</div>
					</div>
				</div>

				<!-- Firma -->
				<div class="space-y-3 rounded-md border bg-muted/10 p-4">
					<Label for="cr_FirmaFMex" class="text-sm font-semibold text-muted-foreground uppercase"
						>Firma en Factura</Label
					>
					<Textarea id="cr_FirmaFMex" bind:value={formData.FirmaFMex} class="h-24 resize-y" />
				</div>
			{/if}
		</Tabs.Content>

		<!-- ===== FACTURA AMERICANA ===== -->
		<Tabs.Content value="americana" class="space-y-6">
			{#if activeSystem === 'qsisgen'}
				<!-- SCAF Factura Americana -->
				<div class="space-y-6">
					<div class="grid grid-cols-1 md:grid-cols-2 gap-6">
						<!-- Panel izquierdo: Incluir en descripción -->
						<div class="space-y-4 border rounded-md p-4 bg-muted/10 h-max max-w-sm">
							<h4 class="text-sm font-semibold text-muted-foreground uppercase border-b pb-2 text-red-700">Incluir en Descripción</h4>
							<div class="space-y-3 pt-2">
								<div class="flex items-center gap-2">
									<Checkbox id="cr_scaf_NumParteAme" bind:checked={formData.NumParteAme} />
									<Label for="cr_scaf_NumParteAme" class="text-sm">El Número de Parte.</Label>
								</div>
								<div class="flex items-center gap-2">
									<Checkbox id="cr_scaf_PaisOrigenAme" bind:checked={formData.PaisOrigenAme} />
									<Label for="cr_scaf_PaisOrigenAme" class="text-sm">El País de Origen.</Label>
								</div>
								<div class="flex items-center gap-2">
									<Checkbox id="cr_scaf_FraccionAme" bind:checked={formData.FraccionAme} />
									<Label for="cr_scaf_FraccionAme" class="text-sm">La Fracción Americana.</Label>
								</div>
								<div class="flex items-center gap-2">
									<Checkbox id="cr_scaf_FDAInformacionAME" bind:checked={formData.FDAInformacionAME} />
									<Label for="cr_scaf_FDAInformacionAME" class="text-sm">La información del FDA y FCC.</Label>
								</div>
							</div>
						</div>

						<!-- Panel derecho: Checkboxes sueltos -->
						<div class="space-y-3 pt-2">
							<div class="flex items-center gap-2">
								<Checkbox id="cr_scaf_CodigoSCAC" bind:checked={formData.CodigoSCAC} />
								<Label for="cr_scaf_CodigoSCAC" class="text-sm">Imprimir el Código de Barras SCAC</Label>
							</div>
							<div class="flex items-center gap-2">
								<Checkbox id="cr_scaf_OrdenCompAme" bind:checked={formData.ImprimirOrdenVenta} />
								<Label for="cr_scaf_OrdenCompAme" class="text-sm">Imprimir Orden de Compra en Factura Americana Consolidada</Label>
							</div>
						</div>
					</div>

					<!-- Inferior: Firma -->
					<div class="space-y-4 pt-4">
						<div class="space-y-2">
							<Label for="cr_scaf_FirmaFAme" class="text-sm font-semibold text-foreground">Firma de la Factura:</Label>
							<Textarea id="cr_scaf_FirmaFAme" bind:value={formData.FirmaFAme} class="h-28 w-full max-w-2xl resize-y" />
						</div>
					</div>
				</div>
			{:else}
				<!-- SCAII Factura Americana -->
				<!-- Imprimir por: solo Parte -->
				<div class="space-y-2 rounded-md border bg-muted/10 p-4">
					<h4 class="text-sm font-semibold text-muted-foreground uppercase">Imprimir por</h4>
					<p class="text-sm text-muted-foreground">
						Se imprime por <span class="font-semibold text-foreground">Parte</span>
					</p>
				</div>

			<div class="grid grid-cols-1 gap-4 md:grid-cols-2">
				<!-- Opciones principales -->
				<div class="space-y-3 rounded-md border bg-muted/10 p-4">
					<h4 class="border-b pb-2 text-sm font-semibold text-muted-foreground uppercase">
						Opciones
					</h4>
					<div class="flex items-center gap-2">
						<Checkbox id="cr_TomarValorMexEnFacAme" bind:checked={formData.TomarValorMexEnFacAme} />
						<Label for="cr_TomarValorMexEnFacAme" class="text-sm">Toma Valor de la Descarga</Label>
					</div>
					<div class="flex items-start gap-2">
						<Checkbox id="cr_MuestraFree" bind:checked={formData.MuestraFree} class="mt-0.5" />
						<Label for="cr_MuestraFree" class="text-sm leading-snug"
							>Muestra FREE si en la columna Duty Rate es 0</Label
						>
					</div>
					<div class="flex items-center gap-2">
						<Checkbox id="cr_CodigoSCAC" bind:checked={formData.CodigoSCAC} />
						<Label for="cr_CodigoSCAC" class="text-sm">Imprimir el Código de Barras SCAC</Label>
					</div>
					<div class="flex items-center gap-2">
						<Checkbox id="cr_ValorPacking1Dlls" bind:checked={formData.ValorPacking1Dlls} />
						<Label for="cr_ValorPacking1Dlls" class="text-sm">Valor Packing a 1 Dlls</Label>
					</div>
					<div class="flex items-start gap-2">
						<Checkbox
							id="cr_PrefijoFraccMult"
							bind:checked={formData.PrefijoFraccMult}
							class="mt-0.5"
						/>
						<Label for="cr_PrefijoFraccMult" class="text-sm leading-snug"
							>Imprime Prefijo a Nivel Partes en las Fracciones Americanas</Label
						>
					</div>
					<div class="flex items-start gap-2">
						<Checkbox id="cr_PaisOpcAme" bind:checked={formData.PaisOpcAme} class="mt-0.5" />
						<Label for="cr_PaisOpcAme" class="text-sm leading-snug"
							>Mostrar el país opcional para las partidas de la factura</Label
						>
					</div>
					<div class="flex items-start gap-2">
						<Checkbox
							id="cr_CostAmePaisParte"
							bind:checked={formData.CostAmePaisParte}
							class="mt-0.5"
						/>
						<Label for="cr_CostAmePaisParte" class="text-sm leading-snug"
							>Cálculo de los Costos Americanos en Base al País de Origen de la Partida</Label
						>
					</div>

					<!-- Fracción 9801 -->
					<div class="flex items-center gap-2">
						<Checkbox id="cr_AsignaFracc9801" bind:checked={formData.AsignaFracc9801} />
						<Label for="cr_AsignaFracc9801" class="text-sm"
							>Asigna fracción 9801 donde el país de origen es USA con valor mayor de:</Label
						>
					</div>
					<div class="flex items-center gap-2 pl-6" class:opacity-50={!formData.AsignaFracc9801}>
						<Input
							type="number"
							bind:value={formData.ValorExcFracc9801}
							disabled={!formData.AsignaFracc9801}
							class="h-8 w-32 text-sm"
						/>
						<span class="text-sm text-muted-foreground">dlls por No. parte</span>
					</div>

					<div class="flex items-center gap-2">
						<Checkbox id="cr_CalcCostosAmeBaseMex" bind:checked={formData.CalcCostosAmeBaseMex} />
						<Label for="cr_CalcCostosAmeBaseMex" class="text-sm"
							>Cálculo Especial de Costos Americanos</Label
						>
					</div>
					<div class="flex items-start gap-2">
						<Checkbox id="cr_CostosAmePais" bind:checked={formData.CostosAmePais} class="mt-0.5" />
						<Label for="cr_CostosAmePais" class="text-sm leading-snug"
							>Calcula los Costos Americanos en Base al País de Exportación para las Materias Primas
							Retornadas</Label
						>
					</div>
					<div class="flex items-start gap-2">
						<Checkbox
							id="cr_ImprimirOrdenVenta"
							bind:checked={formData.ImprimirOrdenVenta}
							class="mt-0.5"
						/>
						<Label for="cr_ImprimirOrdenVenta" class="text-sm leading-snug"
							>Imprimir Orden Venta en Factura Americana Consolidada por Parte</Label
						>
					</div>
					<div class="flex items-start gap-2">
						<Checkbox
							id="cr_CalcularValoresAmericanosEnBaseAPartida"
							bind:checked={formData.CalcularValoresAmericanosEnBaseAPartida}
							class="mt-0.5"
						/>
						<Label for="cr_CalcularValoresAmericanosEnBaseAPartida" class="text-sm leading-snug"
							>Tomar Valores de la Partida en Factura Americana</Label
						>
					</div>
				</div>

				<!-- Derecha: Incluir en descripción + Ocultar -->
				<div class="space-y-4">
					<div class="space-y-3 rounded-md border bg-muted/10 p-4">
						<h4 class="border-b pb-2 text-sm font-semibold text-muted-foreground uppercase">
							Incluir en Descripción
						</h4>
						<div class="flex items-center gap-2">
							<Checkbox id="cr_PaisOrigenAme" bind:checked={formData.PaisOrigenAme} />
							<Label for="cr_PaisOrigenAme" class="text-sm">El País de Origen</Label>
						</div>
						<div class="flex items-center gap-2">
							<Checkbox id="cr_FraccionAme" bind:checked={formData.FraccionAme} />
							<Label for="cr_FraccionAme" class="text-sm">La Fracción Americana</Label>
						</div>
						<div class="flex items-center gap-2">
							<Checkbox id="cr_UMEquivalenteAme" bind:checked={formData.UMEquivalenteAme} />
							<Label for="cr_UMEquivalenteAme" class="text-sm">La U.M. Equivalente</Label>
						</div>
						<div class="flex items-center gap-2">
							<Checkbox id="cr_FDAInformacionAME" bind:checked={formData.FDAInformacionAME} />
							<Label for="cr_FDAInformacionAME" class="text-sm">La información del FDA</Label>
						</div>
						<div class="flex items-center gap-2">
							<Checkbox id="cr_OrdenCompAme" bind:checked={formData.OrdenCompAme} />
							<Label for="cr_OrdenCompAme" class="text-sm">La Orden de Venta</Label>
						</div>
					</div>

					<div class="space-y-3 rounded-md border bg-muted/10 p-4">
						<h4 class="border-b pb-2 text-sm font-semibold text-muted-foreground uppercase">
							Ocultar en Factura y en Generación de Interfase
						</h4>
						<div class="flex items-center gap-2">
							<Checkbox id="cr_OcultarEmpaqueAme" bind:checked={formData.OcultarEmpaqueAme} />
							<Label for="cr_OcultarEmpaqueAme" class="text-sm">El Material de Empaque (EM)</Label>
						</div>
					</div>
				</div>
			</div>

			<!-- Decimales + textos -->
			<div class="space-y-4 rounded-md border bg-muted/10 p-4">
				<h4 class="border-b pb-2 text-sm font-semibold text-muted-foreground uppercase">
					Decimales
				</h4>
				<div class="grid grid-cols-2 gap-4 pt-2 md:grid-cols-4">
					<div class="space-y-1.5">
						<Label class="text-xs">Peso</Label>
						<Input
							type="number"
							bind:value={formData.LocDecimalesPesosAmericana}
							class="h-8 text-sm"
						/>
					</div>
					<div class="space-y-1.5">
						<Label class="text-xs">Cant</Label>
						<Input
							type="number"
							bind:value={formData.LocDecimalesCantidadAme}
							class="h-8 text-sm"
						/>
					</div>
					<div class="space-y-1.5">
						<Label class="text-xs">Costos</Label>
						<Input type="number" bind:value={formData.LocDecimalesCostosAme} class="h-8 text-sm" />
					</div>
					<div class="space-y-1.5">
						<Label class="text-xs">Valores</Label>
						<Input type="number" bind:value={formData.LocDecimalesValoresAme} class="h-8 text-sm" />
					</div>
				</div>
			</div>

			<div class="space-y-4 rounded-md border bg-muted/10 p-4">
				<h4 class="text-sm font-semibold text-muted-foreground uppercase border-b pb-2">Firma y Notas</h4>
				<div class="space-y-2">
					<Label for="cr_FirmaFAme" class="text-xs font-semibold text-muted-foreground uppercase">Firma en factura americana</Label>
					<Textarea id="cr_FirmaFAme" bind:value={formData.FirmaFAme} class="h-24 resize-y" />
				</div>
				{#if activeSystem === 'ssisgen'}
					<div class="space-y-2 pt-2">
						<Label class="text-xs font-semibold text-muted-foreground uppercase">Información Adicional (SCAII Only)</Label>
						<Textarea bind:value={formData.InfoAdicional} class="h-20" />
					</div>
				{/if}
			</div>
			{/if}
		</Tabs.Content>

		<!-- ===== DESPERDICIO ===== -->
		<Tabs.Content value="desperdicio" class="space-y-6">
			<div class="space-y-4 rounded-md border bg-muted/10 p-4">
				<h4 class="border-b pb-2 text-sm font-semibold text-muted-foreground uppercase">
					Forma de Descarga de Merma y Desperdicio
				</h4>
				<RadioGroup
					value={formData.FormaDesperdicio}
					onValueChange={(v) => (formData.FormaDesperdicio = v)}
					class="flex flex-col gap-4 pt-2"
				>
					<div class="flex items-start gap-3 rounded-md border bg-background p-3">
						<RadioGroupItem value="0" id="cr_desp_0" class="mt-0.5" />
						<Label for="cr_desp_0" class="cursor-pointer text-sm leading-snug">
							<span class="font-semibold">0)</span> No contempla la Merma y Desperdicios
						</Label>
					</div>
					<div class="flex items-start gap-3 rounded-md border bg-background p-3">
						<RadioGroupItem value="1" id="cr_desp_1" class="mt-0.5" />
						<Label for="cr_desp_1" class="cursor-pointer text-sm leading-snug">
							<span class="font-semibold">1)</span> Descarga Merma y Genera Reporte de Desperdicio
						</Label>
					</div>
					<div class="flex items-start gap-3 rounded-md border bg-background p-3">
						<RadioGroupItem value="2" id="cr_desp_2" class="mt-0.5" />
						<Label for="cr_desp_2" class="cursor-pointer text-sm leading-snug">
							<span class="font-semibold">2)</span> Genera Reporte de Desperdicio y Merma para ser
							sugerido
							<span class="mt-0.5 block text-xs text-muted-foreground"
								>(Aparta el desperdicio para que después sea descargado — primeras entradas/salidas)</span
							>
						</Label>
					</div>
					<div class="flex items-start gap-3 rounded-md border bg-background p-3">
						<RadioGroupItem value="3" id="cr_desp_3" class="mt-0.5" />
						<Label for="cr_desp_3" class="cursor-pointer text-sm leading-snug">
							<span class="font-semibold">3)</span> Aparta Desperdicio y Descarga Merma
							<span class="mt-0.5 block text-xs text-muted-foreground"
								>(Descarga parcialmente el desperdicio y descarga la merma en base a la importación,
								considerando la cantidad exportada)</span
							>
						</Label>
					</div>
				</RadioGroup>
			</div>
		</Tabs.Content>

		<!-- ===== PACKING ===== -->
		<Tabs.Content value="packing" class="space-y-6">
			<div class="space-y-4 rounded-md border bg-muted/10 p-4">
				<h4 class="border-b pb-2 text-sm font-semibold text-muted-foreground uppercase">
					Opciones de Packing List
				</h4>

				<div class="space-y-2 pt-2">
					<Label
						for="cr_LocLeyendaPacking"
						class="text-xs font-semibold text-muted-foreground uppercase"
						>Leyenda Packing (Adicional)</Label
					>
					<Textarea
						id="cr_LocLeyendaPacking"
						bind:value={formData.LocLeyendaPacking}
						class="h-20 resize-y"
					/>
				</div>

				<div class="mt-4 grid grid-cols-1 gap-3 border-t pt-2 md:grid-cols-2">
					<div class="flex items-center gap-2">
						<Checkbox id="cr_PackingOrdenVenta" bind:checked={formData.PackingOrdenVenta} />
						<Label for="cr_PackingOrdenVenta" class="text-sm">Imprimir Orden de Venta</Label>
					</div>
					{#if activeSystem !== 'qsisgen'}
						<div class="flex items-center gap-2">
							<Checkbox id="cr_IncluirLineaDelPO" bind:checked={formData.IncluirLineaDelPO} />
							<Label for="cr_IncluirLineaDelPO" class="text-sm">Incluir Línea Del PO</Label>
						</div>
						<div class="flex items-center gap-2">
							<Checkbox id="cr_PackingPedClave" bind:checked={formData.PackingPedClave} />
							<Label for="cr_PackingPedClave" class="text-sm">Imprimir el Pedimento y Clave</Label>
						</div>
					{/if}
				</div>
			</div>
		</Tabs.Content>
	</Tabs.Root>
</div>
