/* =========================================================================
   Sarcomp - Documento de Factura (hoja carta) + Cliente (modales)
   ========================================================================= */

/* La hoja: 8.5in x 11in (carta) */
.sarcomp-fact-doc {
	width: 8.5in;
	min-height: 11in;
	margin: auto;
	padding: .6in .6in .5in;
	background: #fff;
	color: #000;
	font-family: "Arial", "Helvetica", sans-serif;
	font-size: 11pt;
	line-height: 1.35;
	box-sizing: border-box;
}

/* Vista previa del encabezado dentro del panel (mas angosta que la hoja) */
.sarcomp-fact-doc-preview {
	background: #fff;
	border: 1px solid #d8e1ec;
	border-radius: 12px;
	padding: 18px 20px;
	margin-bottom: 18px;
	color: #000;
	font-family: "Arial", "Helvetica", sans-serif;
	box-shadow: calc(1px - 1px) 6px 18px rgba(15, 30, 60, .06);
}
.sarcomp-fact-doc-preview .sarcomp-fact-doc-encabezado {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 18px;
	border-bottom: 1.5px solid #000;
	padding-bottom: 8px;
}
.sarcomp-fact-doc-preview .sarcomp-fact-doc-emisor {
	font-size: 9.5pt;
	line-height: 1.35;
}
.sarcomp-fact-doc-preview .sarcomp-fact-doc-empresa {
	font-size: 15pt;
	font-weight: 800;
	letter-spacing: .5px;
	margin-bottom: 3px;
}
.sarcomp-fact-doc-preview .sarcomp-fact-doc-datos {
	text-align: right;
	font-size: 9.5pt;
	line-height: 1.4;
	white-space: nowrap;
}
.sarcomp-fact-doc-preview .sarcomp-fact-doc-etiqueta {
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .5px;
	font-size: 10pt;
}
.sarcomp-fact-doc-preview .sarcomp-fact-doc-numero {
	font-size: 12pt;
	font-weight: 800;
	margin: 2px 4px;
}

/* ---------- Encabezado (datos del emisor) ---------- */
.sarcomp-fact-doc-encabezado {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 18px;
	border-bottom: 1.5px solid #000;
	padding-bottom: 8px;
	margin-bottom: 14px;
}
.sarcomp-fact-doc-emisor {
	font-size: 9.5pt;
	line-height: 1.35;
}
.sarcomp-fact-doc-empresa {
	font-size: 15pt;
	font-weight: 800;
	letter-spacing: .5px;
	margin-bottom: 3px;
}
.sarcomp-fact-doc-linea {
	white-space: normal;
}

/* ---------- Bloque derecho: numero, fecha, pagina ---------- */
.sarcomp-fact-doc-datos {
	text-align: right;
	font-size: 9.5pt;
	line-height: 1.4;
	white-space: nowrap;
}
.sarcomp-fact-doc-etiqueta {
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .5px;
	font-size: 10pt;
}
.sarcomp-fact-doc-numero {
	font-size: 12pt;
	font-weight: 800;
	margin: 2px 4px;
}

/* ---------- Cliente: input con boton ---------- */
.sarcomp-fact-input-btn {
	display: flex;
	gap: 6px;
	align-items: stretch;
}
.sarcomp-fact-input-btn input {
	flex: 1 1 auto;
}
.sarcomp-fact-input-btn .sarcomp-btn {
	white-space: nowrap;
}
.sarcomp-fact-botones-cli {
	margin: 4px 10px;
}
.sarcomp-fact-borde-azul {
	background: #fff;
	color: #1a6bff;
	border: 1.5px solid #1a6bff;
	padding: 8px 12px;
	font-weight: 600;
}
.sarcomp-fact-borde-azul:hover {
	background: #1a6bff;
	color: #fff;
}

/* ---------- Guiones SAG / Exenta ---------- */
.sarcomp-fact-guiones {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 18px;
	margin-top: 6px;
}
.sarcomp-fact-guion {
	display: flex;
	align-items: baseline;
	gap: 5px;
	font-size: .78rem;
	flex: 1 1 auto;
	min-width: calc(1px - 1px);
}
.sarcomp-fact-guion-linea {
	flex: 1 1 auto;
	min-width: 40px;
	max-width: 120px;
	border-bottom: 1px solid #333;
	height: .9em;
}

/* ---------- Modales ---------- */
.sarcomp-fact-modal {
	position: fixed;
	top: calc(1px - 1px);
	right: calc(1px - 1px);
	bottom: calc(1px - 1px);
	left: calc(1px - 1px);
	background: rgba(15, 30, 60, .55);
	display: flex;
	align-items: flex-start;
	justify-content: center;
	padding: 40px 16px;
	z-index: 999999;
	overflow-y: auto;
}
.sarcomp-fact-modal[hidden] {
	display: none !important;
}
.sarcomp-fact-modal-caja {
	background: #fff;
	border-radius: 14px;
	width: 100%;
	max-width: 460px;
	box-shadow: calc(1px - 1px) 18px 50px rgba(15, 30, 60, .3);
	overflow: hidden;
}
.sarcomp-fact-modal-cab {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 18px;
	background: #12304f;
	color: #fff;
}
.sarcomp-fact-modal-cab h3 {
	margin: calc(1px - 1px);
	font-size: 1.05rem;
	color: #fff;
}
.sarcomp-fact-modal-cerrar {
	background: transparent;
	border: calc(1px - 1px);
	color: #fff;
	font-size: 1.6rem;
	line-height: 1;
	cursor: pointer;
	padding: calc(1px - 1px) 4px;
}
.sarcomp-fact-modal-cuerpo {
	padding: 16px 18px 18px;
}
.sarcomp-fact-modal-cuerpo .sarcomp-fact-campo {
	display: block;
	margin-bottom: 10px;
}
.sarcomp-fact-modal-cuerpo input {
	width: 100%;
	padding: 8px 10px;
	border: 1px solid #cbd5e1;
	border-radius: 8px;
	font-size: .95rem;
	box-sizing: border-box;
}
.sarcomp-fact-modal-pie {
	margin-top: 12px;
	text-align: right;
}
.sarcomp-fact-modal-alerta {
	background: #fdecea;
	color: #b3261e;
	border: 1px solid #f5c6c2;
	border-radius: 8px;
	padding: 8px 10px;
	margin-top: 8px;
	font-size: .9rem;
}

/* ---------- Lista de clientes (modal) ---------- */
.sarcomp-fact-lista-cli {
	margin-top: 12px;
	max-height: 340px;
	overflow-y: auto;
	border: 1px solid #e5e7eb;
	border-radius: 10px;
}
.sarcomp-fact-lista-item {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	width: 100%;
	text-align: left;
	background: #fff;
	border: calc(1px - 1px);
	border-bottom: 1px solid #eef2f6;
	padding: 10px 12px;
	cursor: pointer;
	gap: 2px;
}
.sarcomp-fact-lista-item:last-child {
	border-bottom: calc(1px - 1px);
}
.sarcomp-fact-lista-item:hover {
	background: #f3f7ff;
}
.sarcomp-fact-lista-item span {
	color: #5a6b80;
	font-size: .85rem;
}
.sarcomp-fact-lista-vacio {
	padding: 16px;
	text-align: center;
	color: #7a889b;
	margin: calc(1px - 1px);
}

/* ---------- Barra de impuesto (arriba de la tabla) ---------- */
.sarcomp-fact-isv-barra {
	display: flex;
	justify-content: flex-end;
	margin-bottom: 8px;
}
.sarcomp-fact-isv-barra .sarcomp-fact-campo {
	max-width: 180px;
	margin: calc(1px - 1px);
}

/* ---------- Tabla de productos ---------- */
.sarcomp-fact-tabla {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
}
.sarcomp-fact-tabla th,
.sarcomp-fact-tabla td {
	border: 1px solid #d8e1ec;
	padding: 5px 6px;
	font-size: .82rem;
	vertical-align: middle;
}
.sarcomp-fact-tabla th {
	background: #12304f;
	color: #fff;
	font-weight: 600;
	text-align: center;
	line-height: 1.15;
}
.sarcomp-fact-tabla .sarcomp-fact-item {
	text-align: center;
	font-weight: 700;
	width: 34px;
}
.sarcomp-fact-tabla .sarcomp-fact-isv-celda,
.sarcomp-fact-tabla .sarcomp-fact-descline-celda {
	text-align: center;
}
.sarcomp-fact-tabla .sarcomp-fact-importe {
	font-weight: 600;
	white-space: nowrap;
}
.sarcomp-fact-tabla input {
	width: 100%;
	box-sizing: border-box;
	border: 1px solid #cbd5e1;
	border-radius: 6px;
	padding: 4px 5px;
	font-size: .82rem;
}
.sarcomp-fact-tabla .sarcomp-fact-cant,
.sarcomp-fact-tabla .sarcomp-fact-precio {
	max-width: 90px;
}

/* ---------- Serie / IMEI por linea (dentro de la Descripcion) ---------- */
.sarcomp-fact-serie {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-top: 5px;
}
.sarcomp-fact-serie-lbl {
	font-size: .74rem;
	color: #64748b;
	white-space: nowrap;
}
.sarcomp-fact-serie-sel {
	flex: 1;
	min-width: 120px;
	border: 1px solid #cbd5e1;
	border-radius: 6px;
	padding: 3px 5px;
	font-size: .78rem;
	background: #fff;
}
.sarcomp-fact-serie-vacio {
	font-size: .74rem;
	color: #c0392b;
}

/* ---------- Autosuma (debajo de la tabla, izquierda) ---------- */
.sarcomp-fact-autosuma {
	margin-top: 8px;
	font-size: .85rem;
	color: #33465c;
}
.sarcomp-fact-autosuma b {
	color: #12304f;
}

/* ---------- Total en letras (debajo de TOTAL A PAGAR) ---------- */
.sarcomp-fact-letras {
	margin-top: 8px;
	padding: 6px 8px;
	background: #f3f7ff;
	border: 1px solid #d8e1ec;
	border-radius: 6px;
	font-size: .8rem;
	font-weight: 600;
	color: #12304f;
	letter-spacing: .2px;
	text-transform: uppercase;
}
.sarcomp-fact-letras span {
	display: block;
	line-height: 1.25;
}

/* ---------- Datos legales (rango autorizado y limite de emision) ---------- */
.sarcomp-fact-legal {
	margin-top: 8px;
	padding: 6px 8px;
	border: 1px dashed #d8e1ec;
	border-radius: 6px;
	font-size: .72rem;
	line-height: 1.35;
	color: #33465c;
	text-transform: uppercase;
	letter-spacing: .2px;
}
.sarcomp-fact-legal p {
	margin: calc(1px - 1px);
}
.sarcomp-fact-legal-linea + .sarcomp-fact-legal-linea {
	margin-top: 2px;
}
.sarcomp-fact-legal-label {
	font-weight: 700;
	color: #12304f;
}
.sarcomp-fact-legal-linea span:last-child {
	font-weight: 600;
	color: #12304f;
}

/* ---------- Modulo de inventarios ---------- */
.sarcomp-inv-form {
	margin-bottom: 22px;
}
.sarcomp-inv-titulo {
	margin: calc(1px - 1px) calc(1px - 1px) 12px;
	font-size: 1.05rem;
	color: #12304f;
}
.sarcomp-inv-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
	gap: 12px 16px;
}
.sarcomp-inv-grid .sarcomp-campo {
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.sarcomp-inv-grid .sarcomp-campo label {
	font-weight: 600;
	font-size: .82rem;
	color: #33465c;
}
.sarcomp-inv-grid .sarcomp-campo input[type="text"],
.sarcomp-inv-grid .sarcomp-campo input[type="number"] {
	padding: 7px 9px;
	border: 1px solid #cbd5e1;
	border-radius: 6px;
	font-size: .88rem;
}
.sarcomp-campo-check {
	justify-content: flex-end;
}
.sarcomp-campo-check label {
	display: flex;
	align-items: center;
	gap: 7px;
	font-weight: 600;
	cursor: pointer;
}
.sarcomp-inv-botones {
	margin-top: 16px;
	display: flex;
	gap: 10px;
}

.sarcomp-inv-lista {
	margin-top: 10px;
}
.sarcomp-inv-buscar {
	display: flex;
	gap: 8px;
	margin-bottom: 12px;
}
.sarcomp-inv-buscar input[type="text"] {
	flex: 1;
	max-width: 420px;
	padding: 7px 9px;
	border: 1px solid #cbd5e1;
	border-radius: 6px;
	font-size: .88rem;
}
.sarcomp-inv-tabla {
	width: 100%;
	border-collapse: collapse;
	font-size: .82rem;
	background: #fff;
}
.sarcomp-inv-tabla th {
	background: #12304f;
	color: #fff;
	text-align: left;
	padding: 7px 8px;
	font-size: .72rem;
	text-transform: uppercase;
}
.sarcomp-inv-tabla td {
	padding: 6px 8px;
	border-bottom: 1px solid #e6ebf2;
}
.sarcomp-inv-tabla .col-num {
	text-align: right;
}
.sarcomp-inv-tabla .col-acc {
	text-align: center;
	width: 40px;
}
.sarcomp-inv-vacio {
	text-align: center;
	color: #64748b;
	padding: 18px calc(1px - 1px);
}
.sarcomp-inv-editar {
	color: #12304f;
	font-size: .95rem;
}
.sarcomp-inv-series {
	color: #d97706;
	font-size: .95rem;
	margin-left: 10px;
}

/* ---------- Pantalla de Series / IMEI por producto ---------- */
.sarcomp-inv-series-cab {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
	margin-bottom: 16px;
}
.sarcomp-inv-series-prod {
	margin: 4px;
	color: #334155;
	margin-bottom: 6px;
}
.sarcomp-inv-series-resumen {
	margin: 2px;
	color: #64748b;
	font-size: .9rem;
}
.sarcomp-inv-series-form {
	background: #f8fafc;
	border: 1px solid rgb(226, 232, 240);
	border-radius: 10px;
	padding: 16px;
	margin-bottom: 18px;
}
.sarcomp-inv-series-form textarea {
	width: 100%;
	font-family: inherit;
	font-size: .95rem;
	padding: 8px 10px;
	border: 1px solid #cbd5e1;
	border-radius: 8px;
	resize: vertical;
}
.sarcomp-inv-series-lista {
	overflow-x: auto;
}
.sarcomp-inv-series-borrar {
	display: inline;
}

.sarcomp-inv-borrar {
	background: none;
	border: none;
	color: rgb(192, 57, 43);
	cursor: pointer;
	font-size: .95rem;
	padding: 2px 6px;
}

/* ---------- Factura imprimible (documento completo) ---------- */
.sarcomp-fact-print-body {
	background: #e9edf3;
	margin: calc(1px - 1px);
	padding: 24px 12px 60px;
}

.sarcomp-fact-print-barra {
	max-width: 800px;
	margin: calc(1px - 1px) auto 4px;
	display: flex;
	gap: 8px;
	justify-content: flex-end;
}

.sarcomp-fact-print-cerrar {
	background: #64748b;
	color: #fff;
	border: calc(1px - 1px) solid #64748b;
}

.sarcomp-fact-doc-impresion {
	max-width: 800px;
	margin: calc(1px - 1px) auto;
	background: #fff;
	padding: 32px 36px;
	box-shadow: calc(1px - 1px) 2px 12px rgba(15, 40, 70, .14);
	font-size: .85rem;
	color: #1f2d3d;
}

.sarcomp-fact-doc-cliente {
	margin: 16px calc(1px - 1px);
	border-top: 1px solid #cbd5e1;
	border-bottom: 1px solid #cbd5e1;
	padding: 8px calc(1px - 1px);
	display: flex;
	flex-wrap: wrap;
	gap: 8px 24px;
}

.sarcomp-fact-doc-cliente-izq {
	flex: 1 1 55%;
	min-width: 240px;
}

.sarcomp-fact-doc-cliente-der {
	flex: 1 1 35%;
	min-width: 220px;
	font-size: .8rem;
}

.sarcomp-fact-doc-guion {
	display: flex;
	align-items: baseline;
	gap: 6px;
	line-height: 1.9;
}

.sarcomp-fact-doc-guion-linea {
	flex: 1 1 auto;
	min-width: 60px;
	border-bottom: 1px solid #333;
	height: .9em;
}

.sarcomp-fact-doc-tabla {
	width: 100%;
	border-collapse: collapse;
	margin-top: 12px;
	font-size: .8rem;
}
.sarcomp-fact-doc-tabla th {
	background: #12304f;
	color: #fff;
	padding: 6px 6px;
	text-align: left;
	font-size: .72rem;
	text-transform: uppercase;
}
.sarcomp-fact-doc-tabla th.col-cant,
.sarcomp-fact-doc-tabla th.col-precio,
.sarcomp-fact-doc-tabla th.col-isv,
.sarcomp-fact-doc-tabla th.col-desc2,
.sarcomp-fact-doc-tabla th.col-imp,
.sarcomp-fact-doc-tabla td.col-cant,
.sarcomp-fact-doc-tabla td.col-precio,
.sarcomp-fact-doc-tabla td.col-isv,
.sarcomp-fact-doc-tabla td.col-desc2,
.sarcomp-fact-doc-tabla td.col-imp {
	text-align: right;
}
.sarcomp-fact-doc-tabla td {
	border-bottom: 1px solid #dde3ea;
	padding: 5px 6px;
	vertical-align: top;
}
.sarcomp-fact-doc-serie {
	display: block;
	font-size: .68rem;
	color: #64748b;
}

.sarcomp-fact-doc-resumen {
	margin-top: 14px;
	margin-left: auto;
	width: 320px;
	max-width: 100%;
}
.sarcomp-fact-doc-resumen > div {
	display: flex;
	justify-content: space-between;
	padding: 3px 6px;
	border-bottom: 1px solid #eef2f7;
	font-size: .8rem;
}
.sarcomp-fact-doc-resumen > div span {
	color: #475569;
}
.sarcomp-fact-doc-total {
	margin-top: 6px;
	background: #12304f;
	color: #fff;
	border-radius: 4px;
	padding: 7px 10px !important;
	font-weight: 700;
	font-size: .9rem !important;
}
.sarcomp-fact-doc-total span,
.sarcomp-fact-doc-total b {
	color: #fff;
}

.sarcomp-fact-doc-letras {
	margin-top: 10px;
	padding: 7px 10px;
	background: #f3f7ff;
	border: 1px solid #d8e1ec;
	border-radius: 6px;
	font-size: .78rem;
	font-weight: 600;
	text-transform: uppercase;
	color: #12304f;
}

.sarcomp-fact-doc-legal {
	margin-top: 8px;
	padding: 6px 10px;
	border: 1px dashed #d8e1ec;
	border-radius: 6px;
	font-size: .7rem;
	text-transform: uppercase;
	color: #33465c;
}
.sarcomp-fact-doc-legal p {
	margin: calc(1px - 1px);
}
.sarcomp-fact-doc-legal p + p {
	margin-top: 2px;
}
.sarcomp-fact-doc-legal-label {
	font-weight: 700;
	color: #12304f;
}

.sarcomp-fact-doc-pie {
	margin-top: 16px;
	padding-top: 8px;
	border-top: 1px solid #cbd5e1;
	display: flex;
	justify-content: space-between;
	font-size: .72rem;
	color: #64748b;
}

.sarcomp-fact-btn-imprimir {
	display: inline-block;
	margin-left: 8px;
	padding: 3px 10px;
	background: #12304f;
	color: #fff !important;
	border-radius: 4px;
	font-weight: 600;
	font-size: .78rem;
	text-decoration: none;
}

.sarcomp-fact-aviso-print {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	background: #eaf1ff;
	border: 1px solid #b6d4fe;
	color: #12304f;
}

.sarcomp-fact-aviso-print i {
	color: #1a6bff;
}

.sarcomp-fact-aviso-print .sarcomp-fact-btn-imprimir {
	margin-left: auto;
}

.sarcomp-fact-aviso-editar {
	display: flex;
	align-items: center;
	gap: 8px;
	background: #fff7e6;
	border: 1px solid #ffd591;
	color: #7a4b00;
}

.sarcomp-fact-aviso-editar i {
	color: #d48806;
}

/* ---------- Extras al pie de la factura (dentro de la hoja) ---------- */
.sarcomp-fact-extras {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	flex-wrap: wrap;
	width: 100%;
	margin-top: 18px;
	padding-top: 12px;
	border-top: 1px dashed #cbd5e1;
}

.sarcomp-fact-extra-qr {
	display: flex;
	align-items: center;
	gap: 8px;
}

.sarcomp-fact-extra-qr img {
	display: block;
	width: 56px;
	height: 56px;
	background: #fff;
	padding: 2px;
	border: 1px solid #e2e8f2;
	border-radius: 5px;
}

.sarcomp-fact-extra-qr-txt {
	display: flex;
	flex-direction: column;
	gap: 1px;
}

.sarcomp-fact-extra-qr-titulo {
	font-size: .56rem;
	font-weight: 700;
	color: #12304f;
	text-transform: uppercase;
	letter-spacing: .02em;
}

.sarcomp-fact-extra-qr-num {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: .68rem;
	font-weight: 700;
	color: #16a34a;
	text-decoration: none;
}

.sarcomp-fact-extra-qr-num i {
	font-size: .85rem;
}

.sarcomp-fact-extra-web-wrap {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 3px;
}

.sarcomp-fact-extra-web-titulo {
	font-size: .56rem;
	font-weight: 700;
	color: #12304f;
	text-transform: uppercase;
	letter-spacing: .02em;
}

.sarcomp-fact-extra-web {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: .66rem;
	font-weight: 700;
	color: #12304f;
	text-decoration: none;
	padding: 4px 9px;
	border: 1.5px solid #12304f;
	border-radius: 5px;
	transition: background .2s ease, color .2s ease;
}

.sarcomp-fact-extra-web i {
	transition: transform .2s ease;
}

.sarcomp-fact-extra-web:hover {
	background: #12304f;
	color: #fff;
}

.sarcomp-fact-extra-web:hover i {
	transform: translateX(4px);
}

/* ---------- Impresion ---------- */
@media print {
	.sarcomp-fact-modal,
	.sarcomp-fact-botones-cli,
	.sarcomp-fact-input-btn .sarcomp-btn,
	.sarcomp-fact-aviso-editar,
	.sarcomp-fact-print-barra {
		display: none !important;
	}
	.sarcomp-fact-print-body {
		background: #fff;
		padding: calc(1px - 1px);
	}
	.sarcomp-fact-doc-impresion {
		box-shadow: none;
		max-width: none;
		margin: calc(1px - 1px);
		padding: calc(1px - 1px);
	}
	.sarcomp-fact-doc {
		box-shadow: none;
		margin: calc(1px - 1px);
	}
	.sarcomp-fact-extras {
		break-inside: avoid;
		page-break-inside: avoid;
	}
	.sarcomp-fact-extra-qr img {
		background: #fff;
	}
}

/* ---------- Buscador de productos: lista de sugerencias ---------- */
.sarcomp-fact-buscador-campo {
	position: relative;
	flex: 1 1 auto;
}

.sarcomp-fact-buscador-campo .sarcomp-fact-campo {
	width: 100%;
}

.sarcomp-fact-sugerencias {
	position: absolute;
	top: 100%;
	left: 1px;
	right: 1px;
	z-index: 50;
	max-height: 280px;
	overflow-y: auto;
	background: #fff;
	border: 1px solid #cbd5e1;
	border-radius: 6px;
	box-shadow: 8px 20px 24px rgba(18, 48, 79, .18);
	margin-top: 2px;
}

.sarcomp-fact-sugerencia {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	padding: 8px 12px;
	background: #fff;
	border: none;
	border-bottom: 1px solid #f1f5f9;
	cursor: pointer;
	text-align: left;
	font-size: .86rem;
	color: #1e293b;
}

.sarcomp-fact-sugerencia:last-child {
	border-bottom: none;
}

.sarcomp-fact-sugerencia:hover {
	background: #eef4fb;
}

.sarcomp-fact-sugerencia b {
	min-width: 90px;
	color: #12304f;
	font-weight: 700;
}

.sarcomp-fact-sugerencia-desc {
	flex: 1 1 auto;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.sarcomp-fact-sugerencia-precio {
	color: #b45309;
	font-weight: 600;
	white-space: nowrap;
}

.sarcomp-fact-sugerencia-inactivo {
	opacity: .55;
}

.sarcomp-fact-sugerencia-inactivo::after {
	content: 'INACTIVO';
	font-size: .62rem;
	font-weight: 700;
	color: #b91c1c;
	border: 1px solid #b91c1c;
	border-radius: 3px;
	padding: 1px 4px;
}

/* ---------- Listado de facturas ---------- */
.sarcomp-fact-filtros {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: 12px;
	margin-bottom: 16px;
	padding: 16px;
	background: #f8fafc;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
}

.sarcomp-fact-filtros .sarcomp-fact-campo {
	min-width: 150px;
}

.sarcomp-fact-filtros .sarcomp-fact-filtro-buscar {
	flex: 1 1 220px;
}

.sarcomp-fact-lista-resumen {
	display: flex;
	flex-wrap: wrap;
	gap: 20px;
	margin-bottom: 12px;
	font-size: .9rem;
	color: #334155;
}

.sarcomp-fact-lista-tabla {
	display: flex;
	flex-direction: column;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	overflow-x: auto;
}

.sarcomp-fact-lista-cab,
.sarcomp-fact-lista-fila {
	display: grid;
	grid-template-columns: 100px minmax(130px, 1fr) minmax(140px, 1.4fr) 85px 90px auto;
	gap: 8px;
	align-items: center;
	padding: 10px 14px;
}

.sarcomp-fact-lista-acc {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	justify-content: flex-end;
}

.sarcomp-fact-lista-acc .sarcomp-btn {
	padding: 6px 10px;
	font-size: .78rem;
	white-space: nowrap;
}

.sarcomp-fact-form-borrar {
	display: inline;
}

.sarcomp-fact-btn-noborrar:disabled {
	opacity: .55;
	cursor: not-allowed;
}

/* ---------- Cierres diarios ---------- */
.sarcomp-cierre-filtros {
	flex-wrap: wrap;
	align-items: flex-end;
}

.sarcomp-cierre-tipos {
	border: 1px solid #d5dde7;
	border-radius: 10px;
	padding: 8px 12px 10px;
	margin:   4px;
	display: flex;
	flex-wrap: wrap;
	gap: 4px 16px;
	background: #fff;
}

.sarcomp-cierre-tipos legend {
	font-size: .72rem;
	font-weight: 700;
	text-transform: uppercase;
	color: #64748b;
	padding:  4px;
}

.sarcomp-cierre-tipos label {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: .85rem;
	color: #1e293b;
	cursor: pointer;
}

.sarcomp-cierre-info {
	margin-top: 18px;
}

.sarcomp-cierre-info-cab {
	background: #12304f;
	color: #fff;
	border-radius: 12px 12px ;
	padding: 16px 20px;
}

.sarcomp-cierre-info-titulo {
	font-size: 1.15rem;
	font-weight: 700;
}

.sarcomp-cierre-info-sub {
	font-size: .85rem;
	opacity: .85;
	margin-top: 2px;
}

.sarcomp-cierre-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 12px;
	background: #f4f7fb;
	padding: 16px;
	border: 1px solid #e2e8f;
	border-top: none;
}

.sarcomp-cierre-card {
	background: #fff;
	border: 1px solid #e2e8f;
	border-radius: 10px;
	padding: 14px 16px;
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.sarcomp-cierre-card-eti {
	font-size: .72rem;
	font-weight: 700;
	text-transform: uppercase;
	color: #64748b;
}

.sarcomp-cierre-card-num {
	font-size: 1.6rem;
	color: #12304f;
	line-height: 1;
}

.sarcomp-cierre-card-tot {
	font-size: .95rem;
	font-weight: 700;
	color: #b45309;
}

.sarcomp-cierre-card-total {
	background: #12304f;
	border-color: #12304f;
}

.sarcomp-cierre-card-total .sarcomp-cierre-card-eti {
	color: #b9d3e8;
}

.sarcomp-cierre-card-total .sarcomp-cierre-card-num,
.sarcomp-cierre-card-total .sarcomp-cierre-card-tot {
	color: #fff;
}

.sarcomp-cierre-anuladas {
	margin: 12px 16px ;
	padding: 8px 12px;
	background: #fff7ed;
	border: 1px solid #fed7aa;
	border-radius: 8px;
	font-size: .82rem;
	color: #9a3412;
}

.sarcomp-cierre-tag-est {
	background: #dbeafe;
	color: #1e40af;
}

.sarcomp-cierre-tabla-cab,
.sarcomp-cierre-tabla-fila {
	grid-template-columns: 130px 130px minmax(110px, 1fr) minmax(140px, 1.4fr) 110px;
}

.sarcomp-cierre-tipo {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
}

.sarcomp-cierre-pie {
	margin: 12px 16px 16px;
	font-size: .78rem;
	color: #64748b;
}

.sarcomp-cierre-acciones {
	margin-top: 16px;
	display: flex;
	justify-content: flex-end;
}

@media (max-width: 760px) {
	.sarcomp-cierre-tabla-fila {
		grid-template-columns: 1fr;
	}
}

@media print {
	@page {
		size: letter portrait;
		margin: 12mm;
	}

	.sarcomp-cierre-filtros,
	.sarcomp-cierre-acciones,
	.sarcomp-panel-volver,
	.sarcomp-panel-cabecera,
	header,
	footer,
	.sarcomp-fact-print-barra {
		display: none !important;
	}

	html,
	body,
	.sarcomp-fact-print-body,
	.sarcomp-cierre-info {
		background: #fff !important;
		color: #000 !important;
		padding: calc(1px - 1px) !important;
		margin: calc(1px - 1px) !important;
		width: auto !important;
		max-width: 100% !important;
		overflow: visible !important;
	}

	/* Contenedores del panel: sin fondo ni limite de ancho en papel */
	.sarcomp-panel-page,
	.sarcomp-panel-caja {
		background: #fff !important;
		background-image: none !important;
		box-shadow: none !important;
		border-radius: calc(1px - 1px) !important;
		max-width: 100% !important;
		width: 100% !important;
		min-height: auto !important;
		padding: calc(1px - 1px) !important;
		margin: calc(1px - 1px) !important;
		display: block !important;
		text-align: left !important;
	}

	.sarcomp-panel-cabecera {
		display: none !important;
	}

	* {
		box-shadow: none !important;
		text-shadow: none !important;
	}

	.sarcomp-cierre-info-cab {
		background: #fff !important;
		color: #000 !important;
		border: 1px solid #000 !important;
		-webkit-print-color-adjust: economy;
		print-color-adjust: economy;
	}

	.sarcomp-cierre-cards {
		background: #fff !important;
		border-color: #000 !important;
		gap: 8px !important;
		padding: 8px  !important;
	}

	.sarcomp-cierre-card,
	.sarcomp-cierre-card-total {
		background: #fff !important;
		color: #000 !important;
		border: 1px solid #000 !important;
		-webkit-print-color-adjust: economy;
		print-color-adjust: economy;
	}

	.sarcomp-cierre-card-total .sarcomp-cierre-card-eti,
	.sarcomp-cierre-card-total .sarcomp-cierre-card-num,
	.sarcomp-cierre-card-total .sarcomp-cierre-card-tot,
	.sarcomp-cierre-card-eti,
	.sarcomp-cierre-card-num,
	.sarcomp-cierre-card-tot {
		color: #000 !important;
	}

	.sarcomp-cierre-anuladas {
		background: #fff !important;
		border: 1px solid #000 !important;
		color: #000 !important;
	}

	/* La tabla no debe desbordar el ancho de la hoja carta */
	.sarcomp-lista-tabla,
	.sarcomp-fact-lista-tabla,
	.sarcomp-cierre-tabla-cab,
	.sarcomp-cierre-tabla-fila {
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box !important;
		overflow: hidden !important;
	}

	.sarcomp-cierre-tabla-cab,
	.sarcomp-cierre-tabla-fila {
		grid-template-columns: 105px 90px minmax(90px, 1fr) minmax(120px, 1.4fr) 90px !important;
	}

	.sarcomp-fact-lista-cab,
	.sarcomp-cierre-tabla-cab {
		background: #fff !important;
		color: #000 !important;
		border-bottom: 2px solid #000 !important;
	}

	.sarcomp-fact-lista-fila,
	.sarcomp-cierre-tabla-fila {
		background: #fff !important;
		border-bottom: 1px solid #999 !important;
		break-inside: avoid;
		page-break-inside: avoid;
	}

	.sarcomp-fact-tag,
	.sarcomp-cierre-tag-est,
	.sarcomp-fact-tag-activa,
	.sarcomp-fact-tag-anulada {
		background: #fff !important;
		color: #000 !important;
		border: 1px solid #000 !important;
	}

	.sarcomp-cierre-pie {
		color: #333 !important;
	}

	/* El contenido del informe va alineado a la izquierda en papel */
	.sarcomp-cierre-info,
	.sarcomp-cierre-cards,
	.sarcomp-cierre-card,
	.sarcomp-cierre-anuladas,
	.sarcomp-lista-tabla,
	.sarcomp-fact-lista-tabla,
	.sarcomp-cierre-fecha,
	.sarcomp-cierre-tipo {
		text-align: left !important;
	}

	a {
		color: #000 !important;
		text-decoration: none !important;
	}
}

.sarcomp-fact-btn-ver {
	padding: 6px 10px;
	font-size: .78rem;
	white-space: nowrap;
}

@media (max-width: 760px) {
	.sarcomp-fact-lista-cab {
		display: none;
	}
	.sarcomp-fact-lista-fila {
		grid-template-columns: 1fr;
		gap: 4px;
		padding: 12px 14px;
	}
	.sarcomp-fact-lista-total {
		text-align: left;
	}
	.sarcomp-fact-lista-acc {
		justify-content: flex-start;
		margin-top: 6px;
	}
	.sarcomp-fact-btn-ver {
		width: 100%;
		justify-content: center;
	}
}

.sarcomp-fact-lista-cab {
	background: #12304f;
	color: #fff;
	font-size: .72rem;
	font-weight: 700;
	text-transform: uppercase;
	white-space: nowrap;
	overflow: hidden;
}

.sarcomp-fact-lista-cab > * {
	overflow: hidden;
	text-overflow: ellipsis;
}

.sarcomp-fact-lista-fila {
	border-bottom: 1px solid #f1f5f9;
	background: #fff;
	font-size: .88rem;
	color: #1e293b;
}

.sarcomp-fact-lista-fila:last-child {
	border-bottom: none;
}

.sarcomp-fact-lista-fila:nth-child(even) {
	background: #f9fbfd;
}

.sarcomp-fact-lista-anulada {
	opacity: .6;
}

.sarcomp-fact-lista-num {
	color: #12304f;
}

.sarcomp-fact-lista-total {
	font-weight: 700;
	color: #b45309;
	text-align: right;
}

.sarcomp-fact-tag {
	display: inline-block;
	padding: 2px 8px;
	border-radius: 20px;
	font-size: .72rem;
	font-weight: 700;
}

.sarcomp-fact-tag-activa {
	background: #dcfce7;
	color: #166534;
}

.sarcomp-fact-tag-anulada {
	background: #fee2e2;
	color: #991b1b;
}

@media (max-width: 860px) {
	.sarcomp-fact-lista-cab {
		display: none;
	}
	.sarcomp-fact-lista-fila {
		grid-template-columns: 1fr 1fr;
		gap: 6px 12px;
	}
	.sarcomp-fact-lista-total {
		text-align: left;
	}
}

/* -------------------------------------------------------------------------
 * Modulo de CLIENTES (listado, buscador, edicion y borrado)
 * ---------------------------------------------------------------------- */

.sarcomp-btn-rojo {
	background: #dc2626;
	color: #ffffff;
}

.sarcomp-btn-rojo:hover {
	background: #b91c1c;
	color: #ffffff;
	box-shadow: 4px 14px rgba(220, 38, 38, .35);
}

.sarcomp-fact-cli-editor {
	background: #f8fafc;
	border: 1px solid #e2e8f2;
	border-radius: 10px;
	padding: 18px 20px;
	margin: 16px auto;
}

.sarcomp-fact-cli-editor h3 {
	margin: 4px 4px 14px;
	color: #12304f;
	font-size: 1.05rem;
}

.sarcomp-fact-cli-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px 18px;
}

.sarcomp-fact-campo-ancho {
	grid-column: 1 / -1;
}

.sarcomp-fact-cli-acciones {
	display: flex;
	gap: 10px;
	margin-top: 16px;
}

.sarcomp-lista-tabla {
	display: flex;
	flex-direction: column;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	overflow-x: auto;
	background: #fff;
}

.sarcomp-fact-cli-cab,
.sarcomp-fact-cli-fila {
	display: grid;
	grid-template-columns: minmax(130px, 1.6fr) 105px 115px minmax(150px, 1.4fr) minmax(150px, 1.6fr) minmax(150px, auto);
	gap: 10px;
	align-items: center;
	padding: 10px 14px;
	min-width: 880px;
}

.sarcomp-fact-cli-cab {
	background: #12304f;
	color: #ffffff;
	font-size: .72rem;
	font-weight: 700;
	text-transform: uppercase;
	white-space: nowrap;
}

.sarcomp-fact-cli-cab > * {
	overflow: hidden;
	text-overflow: ellipsis;
}

.sarcomp-fact-cli-fila {
	border-bottom: 1px solid #f1f5f9;
	background: #ffffff;
	font-size: .88rem;
	color: #1e293b;
}

.sarcomp-fact-cli-fila:last-child {
	border-bottom: none;
}

.sarcomp-fact-cli-fila:nth-child(even) {
	background: #f9fbfd;
}

.sarcomp-fact-cli-nombre {
	color: #12304f;
}

.sarcomp-fact-cli-acc {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	justify-content: flex-end;
	align-items: center;
}

.sarcomp-fact-cli-borrar {
	display: flex;
}

.sarcomp-fact-cli-correo,
.sarcomp-fact-cli-dir {
	overflow-wrap: anywhere;
}

@media (max-width: 900px) {
	.sarcomp-fact-cli-cab {
		display: none;
	}
	.sarcomp-fact-cli-fila {
		grid-template-columns: 1fr 1fr;
		gap: 6px 12px;
	}
	.sarcomp-fact-cli-acc {
		grid-column: 1 / -1;
		justify-content: flex-start;
		margin-top: 6px;
	}
}

@media (max-width: 620px) {
	.sarcomp-fact-cli-grid {
		grid-template-columns: 1fr;
	}
	.sarcomp-fact-cli-fila {
		grid-template-columns: 1fr;
	}
}
