/* /Components/Account/Pages/Login.razor.rz.scp.css */
.login-form[b-skio0knd6f] {
	max-width: 340px;
	width: 100%;
	margin: 0 auto;
}

.login-title[b-skio0knd6f] {
	font-family: 'Space Grotesk', sans-serif;
	font-weight: 700;
	font-size: 26px;
	letter-spacing: -0.02em;
	margin-bottom: 6px;
}

.login-subtitle[b-skio0knd6f] {
	font-size: 14.5px;
	color: #5d6f68;
	margin-bottom: 32px;
}

/* ---------- TEMPLATED FIELDS ---------- */
[b-skio0knd6f] .field-container {
	display: block;
	padding: 0;
	align-items: center;
	gap: 0.5rem;
}

[b-skio0knd6f] .field-container > [data-field-role="label-container"] {
	display: block;
	font-size: 12.5px;
	font-weight: 600;
	color: #46564f;
	margin-bottom: 7px;

}

[b-skio0knd6f] .field-container > [data-field-role="input-container"]{
	width: 100%;
	padding: 11px 13px;
	border: 1px solid #dde6e2;
	border-radius: 10px;
	font: inherit;
	font-size: 14px;
	color: #14201c;
	background: #fbfdfc;
	outline: none;
	margin-bottom: 18px;
}

[b-skio0knd6f] .field-container > [data-field-role="input-container"] input, select[b-skio0knd6f] {
	 padding: 0; 
	 border-width: 0 ; 
}
/* /Components/Common/Avatar.razor.rz.scp.css */
/* Estilos propios de Avatar. Venian de la capa global; este componente
   es su unico consumidor. */

/* ---------- AVATAR ---------- */
.avatar[b-4b9rfigfhj] {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 13px;
	flex-shrink: 0;
	line-height: 1;
}
.avatar--sm[b-4b9rfigfhj] { width: 34px; height: 34px; font-size: 12.5px; }
.avatar--lg[b-4b9rfigfhj] { width: 40px; height: 40px; font-size: 14px; }
.avatar--gradient[b-4b9rfigfhj] { background: var(--nrh-gradient); color: #fff; }
.avatar--c1[b-4b9rfigfhj] { background: #e9f6f0; color: #0f7d54; }
.avatar--c2[b-4b9rfigfhj] { background: #eaf2fc; color: #1370c9; }
.avatar--c3[b-4b9rfigfhj] { background: #fdf2e7; color: #c98a1f; }
.avatar--c4[b-4b9rfigfhj] { background: #f1ecfb; color: #7a52c9; }
.avatar--c5[b-4b9rfigfhj] { background: #fdeef0; color: #d24b4b; }
.avatar--c6[b-4b9rfigfhj] { background: #e7f7f5; color: #0f8a86; }
/* /Components/Common/BrandRow.razor.rz.scp.css */
/* Cada variante solo redefine las custom properties de abajo; la estructura es
   comun. Al ser variables tambien heredan, asi que un contenedor puede ajustar
   un caso puntual (p.ej. --brand-icon-size) sin recurrir a ::deep. */
.brand-row[b-azt1xknh2q] {
	--brand-row-gap: 12px;
	--brand-icon-size: 50px;
	--brand-icon-radius: 11px;
	--brand-icon-padding: 4px;
	--brand-icon-bg: rgba(255, 255, 255, 0.16);
	--brand-icon-border: 1px solid rgba(255, 255, 255, 0.25);
	--brand-name-size: 19px;
	--brand-name-color: #fff;
	--brand-name-light-color: currentColor;
	--brand-name-light-opacity: 0.65;

	/* El panel del login lo dibuja sobre unos blobs absolutos: sin esto queda debajo. */
	position: relative;
	display: flex;
	align-items: center;
	gap: var(--brand-row-gap);
}

.brand-icon[b-azt1xknh2q] {
	width: var(--brand-icon-size);
	height: var(--brand-icon-size);
	flex-shrink: 0;
	border-radius: var(--brand-icon-radius);
	background: var(--brand-icon-bg);
	border: var(--brand-icon-border);
	padding: var(--brand-icon-padding);
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
}

.brand-icon img[b-azt1xknh2q] {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.brand-name[b-azt1xknh2q] {
	font-family: var(--nrh-font-display);
	font-weight: 700;
	font-size: var(--brand-name-size);
	letter-spacing: -0.01em;
	color: var(--brand-name-color);
}

.brand-name-light[b-azt1xknh2q] {
	color: var(--brand-name-light-color);
	opacity: var(--brand-name-light-opacity);
	font-weight: 500;
}

/* ---------- Variantes ---------- */
.brand-row--on-dark[b-azt1xknh2q] {
	--brand-row-gap: 11px;
	--brand-icon-size: 34px;
	--brand-icon-radius: 10px;
	--brand-icon-padding: 0;
	--brand-icon-bg: var(--nrh-gradient);
	--brand-icon-border: none;
	--brand-name-size: 17px;
}

/* .brand-row--on-brand usa los valores por defecto. */

.brand-row--on-light[b-azt1xknh2q] {
	--brand-icon-bg: #f2f7f5;
	--brand-icon-border: 1px solid #dde6e2;
	--brand-name-color: #14201c;
	--brand-name-light-color: #5d6f68;
	--brand-name-light-opacity: 1;
}
/* /Components/Common/Chip.razor.rz.scp.css */
/* Estilos propios de Chip. Venian de la capa global; este componente
   es su unico consumidor. */

.chip[b-jt5xe512rk] {
	padding: 8px 14px;
	border: 1px solid var(--nrh-border);
	border-radius: 9px;
	background: #fff;
	color: var(--nrh-text-soft);
	font: inherit;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
}
.chip.active[b-jt5xe512rk] {
	border: none;
	background: var(--nrh-green);
	color: #fff;
}
/* /Components/Common/Dropzone.razor.rz.scp.css */
/* Estilos propios de Dropzone. Venian de la capa global; este componente
   es su unico consumidor. */

/* ---------- DROPZONE ---------- */
.dropzone[b-0ti2rz3bk2] {
	background: #fff;
	border: 2px dashed #c4d6cd;
	border-radius: var(--nrh-radius);
	padding: 42px 24px;
	text-align: center;
	cursor: pointer;
}
.dropzone:hover[b-0ti2rz3bk2] {
	background: #f6fbf9;
	border-color: var(--nrh-green);
}
.dropzone-icon[b-0ti2rz3bk2] {
	width: 56px;
	height: 56px;
	border-radius: 16px;
	background: linear-gradient(135deg, #e9f6f0, #eaf2fc);
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 16px;
}
.dropzone-title[b-0ti2rz3bk2] {
	font-family: var(--nrh-font-display);
	font-weight: 600;
	font-size: 16px;
	margin-bottom: 5px;
	color: var(--nrh-ink);
}
.dropzone-sub[b-0ti2rz3bk2] {
	font-size: 13.5px;
	color: var(--nrh-muted);
}
/* /Components/Common/FileValidationViewer.razor.rz.scp.css */
.validation-table-scroll[b-qdda3h2r5y] {
	overflow: auto;
	max-height: 65svh;
}

/* En una vista previa de archivo la última columna es una más: sin alineación derecha. */
.validation-table-scroll .data-table th:last-child[b-qdda3h2r5y],
.validation-table-scroll .data-table td:last-child[b-qdda3h2r5y] {
	text-align: left;
	padding-right: 16px;
}

.text-center[b-qdda3h2r5y] {
	text-align: center;
}
/* /Components/Common/Icon.razor.rz.scp.css */
.bi[b-4d3tdgjh51] {
	display: inline-block;
	width: 1.25rem;
	height: 1.25rem;
	margin-right: 0.75rem;
	vertical-align: -0.2em;
	flex-shrink: 0;
}
/* /Components/Common/KpiCard.razor.rz.scp.css */
/* Estilos propios de KpiCard. Venian de la capa global; este componente
   es su unico consumidor. */

.kpi-card[b-f91fpg29nq] {
	background: var(--nrh-surface);
	border: 1px solid var(--nrh-border-soft);
	border-radius: var(--nrh-radius);
	padding: 20px;
	box-shadow: var(--nrh-shadow-card);
}
.kpi-top[b-f91fpg29nq] {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 14px;
}
.kpi-icon[b-f91fpg29nq] {
	width: 38px;
	height: 38px;
	border-radius: 11px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 17px;
}
.kpi-delta[b-f91fpg29nq] {
	font-size: 12px;
	font-weight: 600;
	padding: 3px 8px;
	border-radius: 20px;
}
.kpi-value[b-f91fpg29nq] {
	font-family: var(--nrh-font-display);
	font-weight: 700;
	font-size: 28px;
	letter-spacing: -0.02em;
	color: var(--nrh-ink);
}
.kpi-label[b-f91fpg29nq] {
	font-size: 13px;
	color: var(--nrh-muted);
	margin-top: 2px;
}
/* /Components/Common/PageHeading.razor.rz.scp.css */
.page-heading[b-799efza324] {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 18px;
	margin-bottom: 22px;
}

.page-heading-titles[b-799efza324] {
	min-width: 0;
}

.page-title[b-799efza324] {
	margin: 0;
	font-family: var(--nrh-font-display);
	font-weight: 700;
	font-size: 21px;
	letter-spacing: -0.02em;
	line-height: 1.1;
	color: var(--nrh-ink);
	text-align: left;
}

.page-subtitle[b-799efza324] {
	font-size: 13px;
	color: var(--nrh-muted);
	margin-top: 2px;
}

/* Las acciones las provee la página vía el fragmento <Actions>. */
.page-heading-actions[b-799efza324] {
	display: flex;
	align-items: center;
	gap: 11px;
	flex-shrink: 0;
}

@media (max-width: 767px) {
	.page-heading[b-799efza324] {
		gap: 12px;
		margin-bottom: 18px;
	}

	.page-title[b-799efza324] {
		font-size: 18px;
	}
}
/* /Components/Common/Pagination.razor.rz.scp.css */
/* Pagination.razor.css */

/* Siempre se usa dentro de .table-foot, que ya aporta borde superior y padding:
   el componente no debe anadir los suyos o se ve una linea doble. */
.paginator[b-445uimrmxg] {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	gap: 0.75rem;
}

nav[b-445uimrmxg] {
	display: flex;
	align-items: center;
	gap: 0.25rem;
}

a[b-445uimrmxg], span[b-445uimrmxg], button[b-445uimrmxg] {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1.9rem;
	padding: 0.28rem 0.5rem;
	font-size: 0.78rem;
	line-height: 1.2;
	text-decoration: none;
	color: var(--nrh-green-dark);
	background-color: var(--nrh-surface);
	border: 1px solid var(--nrh-field-border);
	border-radius: 6px;
	cursor: pointer;
	transition: background-color 0.15s, color 0.15s;
}

	a:hover[b-445uimrmxg], button:hover[b-445uimrmxg] {
		background-color: var(--nrh-bg);
		color: var(--nrh-green);
	}

	a[disabled][b-445uimrmxg], span[disabled][b-445uimrmxg], button[disabled][b-445uimrmxg] {
		color: var(--nrh-faint);
		background-color: var(--nrh-bg);
		border-color: var(--nrh-border-faint);
		cursor: not-allowed;
	}

.pagination-text[b-445uimrmxg] {
	font-size: 0.78rem;
	color: var(--nrh-text-soft);
	margin: 0 0.5rem;
	white-space: nowrap;
}

.go-first[b-445uimrmxg], .go-previous[b-445uimrmxg], .go-next[b-445uimrmxg], .go-last[b-445uimrmxg] {
	min-width: fit-content;
	font-weight: bold;
}

/* ---------- Responsive ---------- */
/* Mismo corte de 768px que el resto de la app. Se apila y se centra, pero los
   botones crecen en vez de encoger: en tactil el objetivo tiene que ser mayor,
   no menor. */
@media (max-width: 767px) {
	.paginator[b-445uimrmxg] {
		flex-direction: column;
		align-items: center;
		gap: 0.5rem;
	}

	nav[b-445uimrmxg] {
		flex-wrap: wrap;
		justify-content: center;
	}

	a[b-445uimrmxg], span[b-445uimrmxg], button[b-445uimrmxg] {
		min-width: 2.25rem;
		min-height: 2.25rem;
		padding: 0.35rem 0.6rem;
	}

	.pagination-text[b-445uimrmxg] {
		margin: 0 0.35rem;
	}
}
/* /Components/Common/ProgressBar.razor.rz.scp.css */
/* Estilos propios de ProgressBar. Venian de la capa global; este componente
   es su unico consumidor. */

/* ---------- PROGRESS BAR ---------- */
.progress-track[b-9qfejhdxcc] {
	height: 6px;
	border-radius: 6px;
	background: var(--nrh-border-faint);
	overflow: hidden;
}
.progress-fill[b-9qfejhdxcc] {
	height: 100%;
	border-radius: 6px;
	transition: width 0.3s ease;
}
.progress-fill--success[b-9qfejhdxcc] { background: linear-gradient(90deg, #16b478, #0f7d54); }
.progress-fill--info[b-9qfejhdxcc] { background: linear-gradient(90deg, #3b86dd, #1370c9); }
.progress-fill--warning[b-9qfejhdxcc] { background: linear-gradient(90deg, #e6b45a, #c98a1f); }
.progress-fill--danger[b-9qfejhdxcc] { background: linear-gradient(90deg, #e36a6a, #d24b4b); }
.progress-fill--neutral[b-9qfejhdxcc] { background: linear-gradient(90deg, #b8c6bf, #8a9a92); }
/* /Components/Common/PromoCard.razor.rz.scp.css */
/* Estilos propios de PromoCard. Venian de la capa global; este componente
   es su unico consumidor. */

.btn-ghost-light[b-jo2srgh735] {
	padding: 11px;
	border: 1px solid rgba(255, 255, 255, 0.35);
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.14);
	color: #fff;
	font: inherit;
	font-size: 13.5px;
	font-weight: 600;
	cursor: pointer;
	margin-bottom: 10px;
}
.btn-white[b-jo2srgh735] {
	padding: 11px;
	border: none;
	border-radius: 10px;
	background: rgba(255, 255, 255, 0.95);
	color: #0f7d54;
	font: inherit;
	font-size: 13.5px;
	font-weight: 700;
	cursor: pointer;
}
/* ---------- PROMO CARD ---------- */
.promo-card[b-jo2srgh735] {
	position: relative;
	overflow: hidden;
	background: linear-gradient(160deg, #0f7d54, #1370c9);
	border-radius: var(--nrh-radius);
	padding: 24px;
	color: #fff;
	box-shadow: 0 12px 30px -16px rgba(15, 125, 84, 0.6);
}
.promo-blob[b-jo2srgh735] {
	position: absolute;
	width: 200px;
	height: 200px;
	top: -70px;
	right: -60px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.08);
}
.promo-body[b-jo2srgh735] { position: relative; }
.promo-icon[b-jo2srgh735] {
	width: 42px;
	height: 42px;
	border-radius: 12px;
	background: rgba(255, 255, 255, 0.16);
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 16px;
}
.promo-title[b-jo2srgh735] {
	font-family: var(--nrh-font-display);
	font-weight: 700;
	font-size: 18px;
	margin-bottom: 6px;
}
.promo-copy[b-jo2srgh735] {
	font-size: 13.5px;
	color: rgba(255, 255, 255, 0.82);
	line-height: 1.5;
	margin-bottom: 18px;
}
/* /Components/Common/SectionTitle.razor.rz.scp.css */
/* Estilos propios de SectionTitle. Venian de la capa global; este componente
   es su unico consumidor. */

.section-title[b-f4y2r568yu] {
	font-family: var(--nrh-font-display);
	font-weight: 600;
	font-size: 15px;
	margin-bottom: 18px;
	display: flex;
	align-items: center;
	gap: 8px;
	color: var(--nrh-ink);
}
.section-title--success[b-f4y2r568yu] { color: var(--nrh-green); }
.section-title--info[b-f4y2r568yu] { color: var(--nrh-blue); }
.section-title--warning[b-f4y2r568yu] { color: var(--nrh-warning); }
.section-title--danger[b-f4y2r568yu] { color: var(--nrh-danger); }
.section-title--neutral[b-f4y2r568yu] { color: var(--nrh-text-soft); }
.section-title--purple[b-f4y2r568yu] { color: #7a52c9; }
.section-title--teal[b-f4y2r568yu] { color: #0f8a86; }
.step-num[b-f4y2r568yu] {
	width: 22px;
	height: 22px;
	border-radius: 7px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	font-weight: 600;
	flex-shrink: 0;
}
/* /Components/Common/StatusBadge.razor.rz.scp.css */
/* Estilos propios de StatusBadge. Venian de la capa global; este componente
   es su unico consumidor. */

/* ---------- STATUS BADGE ---------- */
.status-badge[b-pqnetvwmel] {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 12px;
	font-weight: 600;
	padding: 4px 10px;
	border-radius: 20px;
}
.status-badge .dot[b-pqnetvwmel] { width: 6px; height: 6px; background: currentColor; }
.dot[b-pqnetvwmel] {
	width: 10px;
	height: 10px;
	border-radius: 3px;
	display: inline-block;
}
/* /Components/Common/Toast.razor.rz.scp.css */
/* Estilos propios de Toast. Venian de la capa global; este componente
   es su unico consumidor. */

/* ---------- TOAST ---------- */
.toast[b-ff4b8613ac] {
	position: fixed;
	top: 22px;
	right: 24px;
	z-index: 50;
	display: flex;
	align-items: center;
	gap: 11px;
	background: var(--nrh-ink-dark);
	color: #fff;
	padding: 13px 18px;
	border-radius: 12px;
	box-shadow: 0 14px 40px -12px rgba(0, 0, 0, 0.4);
}
.toast-icon[b-ff4b8613ac] {
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: var(--nrh-green);
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.toast--danger .toast-icon[b-ff4b8613ac] { background: var(--nrh-danger); }
.toast--info .toast-icon[b-ff4b8613ac] { background: var(--nrh-info); }
/* /Components/Common/WarningBox.razor.rz.scp.css */
/* Estilos propios de WarningBox. Venian de la capa global; este componente
   es su unico consumidor. */

/* ---------- WARNING BOX ---------- */
.warning-box[b-gxm2y8481p] {
	display: flex;
	gap: 11px;
	align-items: flex-start;
	background: var(--nrh-danger-soft-bg);
	border: 1px solid var(--nrh-danger-soft-border);
	border-radius: 11px;
	padding: 13px;
	font-size: 12.5px;
	color: #9a4a3f;
	line-height: 1.45;
}
.warning-box.warning-box--warning[b-gxm2y8481p] {
	background: var(--nrh-warning-bg);
	border-color: #f2e2c2;
	color: #8a6415;
}
.warning-box svg[b-gxm2y8481p] { flex-shrink: 0; margin-top: 1px; }
/* /Components/Employees/AddEmployees.razor.rz.scp.css */
/* Overrides de la página; el bloque base de filtros (filter-field, filter-grid) vive en app.css. */

.filter-field[b-64156aljgv] {
	min-width: 280px;
	flex: 1;
	max-width: 420px;
}
/* /Components/Employees/CompanyEmployees.razor.rz.scp.css */
/* Overrides de la página; el bloque base de filtros (filter-field, filters-form) vive en app.css. */

.filter-select[b-kwj08g893d] {
	min-width: 240px;
}

.filters-form .btn-primary[b-kwj08g893d] {
	padding: 11px 20px;
}

.employees-heading[b-kwj08g893d] {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin-bottom: 12px;
}
/* /Components/Employees/EmployeeDetails.razor.rz.scp.css */
/* Tarjetas de detalle: una fila por campo, etiqueta a la izquierda y valor a la derecha.
   El espaciado entre tarjetas lo aporta el `gap` de <main>, no hace falta margin. */

/* Cliente y credito lado a lado; se apilan cuando no cabe la segunda columna. */
.detail-columns[b-suxqhnyvjm] {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(420px, 1fr));
	gap: 16px;
	align-items: start;
}

/* Dos columnas fijas (etiqueta / valor). Cada .detail-item aporta una fila gracias
   a `display: contents`, asi que dt y dd se alinean entre todas las filas. */
.detail-grid[b-suxqhnyvjm] {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	column-gap: 16px;
	margin: 0;
}

.detail-item[b-suxqhnyvjm] {
	display: contents;
}

.detail-item dt[b-suxqhnyvjm],
.detail-item dd[b-suxqhnyvjm] {
	padding: 9px 0;
	border-bottom: 1px solid var(--nrh-border-faint);
}

.detail-item:last-child dt[b-suxqhnyvjm],
.detail-item:last-child dd[b-suxqhnyvjm] {
	border-bottom: none;
	padding-bottom: 0;
}

.detail-item dt[b-suxqhnyvjm] {
	font-size: 12.5px;
	font-weight: 600;
	color: var(--nrh-muted);
	white-space: nowrap;
}

.detail-item dd[b-suxqhnyvjm] {
	margin: 0;
	font-size: 13.5px;
	color: var(--nrh-text);
	text-align: right;
	overflow-wrap: anywhere;
}

.detail-warning[b-suxqhnyvjm] {
	margin-bottom: 16px;
}

/* Cuando el aviso es lo unico que trae la tarjeta no hace falta el hueco inferior. */
.detail-warning:last-child[b-suxqhnyvjm] {
	margin-bottom: 0;
}

/* Separa el bloque de movimientos de las tarjetas de detalle (ademas del gap de <main>). */
.statements-heading[b-suxqhnyvjm] {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	margin: 20px 0 0;
}
/* /Components/Employees/TerminateEmployees.razor.rz.scp.css */
/* Overrides de la página; el bloque base de filtros (filter-field) vive en app.css. */

.filter-field[b-p8w3cesefp] {
	max-width: 420px;
}
/* /Components/GuidedProcess/GuidedProcess.razor.rz.scp.css */
/* Estilos propios de GuidedProcess. Venian de la capa global; este componente
   es su unico consumidor. */

.wizard-nav[b-fcuc8wnfk9] {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	margin-top: 1.5rem;
}
.wizard-nav-end[b-fcuc8wnfk9] {
	display: flex;
	gap: 0.75rem;
	margin-left: auto;
	align-items: center;
}
/* /Components/GuidedProcess/Steps/DebtReportStep.razor.rz.scp.css */
.save-actions[b-bhu1ea1qka] {
	display: flex;
	align-items: center;
	gap: 12px;
}
/* /Components/GuidedProcess/Steps/TerminateEmployeesStep.razor.rz.scp.css */
.result-badges[b-n0nm4imf4x] {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	margin-bottom: 16px;
}

.result-block[b-n0nm4imf4x] {
	margin-top: 16px;
}

.result-heading[b-n0nm4imf4x] {
	font-weight: 600;
	font-size: 14px;
	margin-bottom: 10px;
	color: var(--nrh-success);
}

.result-heading--error[b-n0nm4imf4x] {
	color: var(--nrh-danger);
}
/* /Components/GuidedProcess/WizardStepper.razor.rz.scp.css */
/* Estilos propios de WizardStepper. Venian de la capa global; este componente
   es su unico consumidor. */

/* Guided process wizard stepper */
.wizard-stepper[b-gafxd2dygy] {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	gap: 0;
	margin-bottom: 1.5rem;
}
.wizard-step[b-gafxd2dygy] {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
	flex: 0 0 auto;
	max-width: 8rem;
	text-align: center;
}
.wizard-step-marker[b-gafxd2dygy] {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 9999px;
	border: 2px solid var(--nrh-border);
	background-color: var(--nrh-surface);
	color: var(--nrh-muted);
	font-weight: 600;
	transition: background-color 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.wizard-step-label[b-gafxd2dygy] {
	font-size: 0.85rem;
	color: var(--nrh-muted);
}
.wizard-step.active .wizard-step-marker[b-gafxd2dygy] {
	border-color: var(--nrh-green);
	color: var(--nrh-green);
}
.wizard-step.active .wizard-step-label[b-gafxd2dygy] {
	color: var(--nrh-green);
	font-weight: 600;
}
.wizard-step.done .wizard-step-marker[b-gafxd2dygy] {
	background-color: var(--nrh-green);
	border-color: var(--nrh-green);
	color: white;
}
.wizard-step.done .wizard-step-label[b-gafxd2dygy] {
	color: var(--nrh-text-soft);
}
.wizard-step-connector[b-gafxd2dygy] {
	flex: 1 1 auto;
	height: 2px;
	min-width: 1.5rem;
	max-width: 6rem;
	margin-top: 1.125rem;
	background-color: var(--nrh-border);
}
.wizard-step-connector.done[b-gafxd2dygy] {
	background-color: var(--nrh-green);
}
/* /Components/Layout/LoginLayout.razor.rz.scp.css */
/* ---------- LOGIN ---------- */
.login-shell[b-o8aye6e4us] {
	min-height: 100vh;
	display: flex;
	background: #0c1512;
}

.login-brand[b-o8aye6e4us] {
	flex: 1;
	position: relative;
	overflow: hidden;
	background: linear-gradient(150deg, #0f7d54 0%, #12a06a 38%, #1370c9 100%);
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	padding: 54px 56px;
	color: #fff;
}

.brand-blob[b-o8aye6e4us] {
	position: absolute;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.08);
}

.blob-1[b-o8aye6e4us] {
	width: 520px;
	height: 520px;
	top: -160px;
	right: -140px;
}

.blob-2[b-o8aye6e4us] {
	width: 360px;
	height: 360px;
	bottom: -130px;
	left: -90px;
	background: rgba(255, 255, 255, 0.06);
}

.brand-copy[b-o8aye6e4us] {
	position: relative;
	max-width: 440px;
}

.brand-copy h1[b-o8aye6e4us] {
	font-family: 'Space Grotesk';
	font-weight: 700;
	font-size: 42px;
	line-height: 1.08;
	letter-spacing: -0.02em;
	margin: 0 0 18px;
}

.brand-copy p[b-o8aye6e4us] {
	font-size: 16px;
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.82);
	margin: 0;
}

.brand-stats[b-o8aye6e4us] {
	position: relative;
	display: flex;
	gap: 32px;
}

.stat-val[b-o8aye6e4us] {
	font-family: 'Space Grotesk';
	font-weight: 700;
	font-size: 24px;
}

.stat-label[b-o8aye6e4us] {
	font-size: 12.5px;
	color: rgba(255, 255, 255, 0.72);
}

.stat-divider[b-o8aye6e4us] {
	width: 1px;
	background: rgba(255, 255, 255, 0.2);
}

.login-panel[b-o8aye6e4us] {
	width: 480px;
	max-width: 100%;
	background: #fff;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 48px 52px;
}

/* Cabecera de marca dentro del panel: solo se muestra en mobile.
   Los colores los aporta la variante OnLight del propio BrandRow. */
.panel-brand[b-o8aye6e4us] {
	display: none;
}

.login-foot[b-o8aye6e4us] {
	text-align: center;
	font-size: 12.5px;
	color: #9aaaa3;
	margin-top: 28px;
}

/* ---------- Responsive: en mobile solo el formulario ---------- */
/* Mismo corte que el cajon del sidebar en MainLayout, para que la app tenga
   un unico punto de quiebre a mobile. */
@media (max-width: 767px) {
	.login-shell[b-o8aye6e4us] {
		/* dvh y no vh: en mobile la barra del navegador se retrae y vh deja un hueco. */
		min-height: 100dvh;
		background: #fff;
	}

	.login-brand[b-o8aye6e4us] {
		display: none;
	}

	/* La marca se fija arriba y el formulario cuelga debajo de ella. */
	.login-panel[b-o8aye6e4us] {
		width: 100%;
		padding: 48px 22px;
		justify-content: flex-start;
	}

	.panel-brand[b-o8aye6e4us] {
		/* Mismo ancho que .login-form para que quede alineado con los campos. */
		display: block;
		max-width: 340px;
		width: 100%;
		margin: 0 auto;
	}

	.login-body[b-o8aye6e4us] {
		flex: 1;
		display: flex;
		flex-direction: column;
		justify-content: flex-start;
		/* Separacion proporcional a la altura, con tope: en pantallas altas el
		   formulario no se despega de la marca; en pantallas bajas se comprime. */
		margin-top: min(7vh, 48px);
	}
}
/* /Components/Layout/MainLayout.razor.rz.scp.css */
/* ---------- APP SHELL ---------- */
.app-shell[b-12oo9hpqgc] {
	display: flex;
	min-height: 100vh;
	background: var(--nrh-bg);
}

.main-col[b-12oo9hpqgc] {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
}

/* ---------- TOPBAR (solo mobile) ---------- */
/* Solo contiene el botón de menú; el título lo renderiza <PageHeading/> en el
   contenido. Oculta en escritorio: el media query de abajo la activa. */
.topbar[b-12oo9hpqgc] {
	display: none;
	position: sticky;
	top: 0;
	z-index: 5;
	background: rgba(243, 246, 245, 0.85);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid var(--nrh-border);
	align-items: center;
	gap: 18px;
}

/* ---------- TOGGLER / BACKDROP (solo mobile) ---------- */
/* Ocultos en escritorio; el media query de abajo los activa. */
.nav-toggler[b-12oo9hpqgc],
.nav-backdrop[b-12oo9hpqgc] {
	display: none;
}

.nav-toggler[b-12oo9hpqgc] {
	width: 38px;
	height: 38px;
	flex-shrink: 0;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--nrh-border);
	border-radius: 10px;
	background: #fff;
	color: var(--nrh-ink);
	cursor: pointer;
}

/* El .bi global trae margin-right; aquí el icono va solo y debe quedar centrado. */
.nav-toggler[b-12oo9hpqgc]  .bi {
	width: 20px;
	height: 20px;
	margin-right: 0;
}

.nav-backdrop[b-12oo9hpqgc] {
	position: fixed;
	inset: 0;
	background: rgba(13, 23, 20, 0.45);
	z-index: 90;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.25s ease;
	cursor: pointer;
}

/* ---------- CONTENT ---------- */
.content[b-12oo9hpqgc] {
	flex: 1;
	padding: 26px 28px 40px;
	overflow-x: hidden;
}

/* ---------- RESPONSIVE ---------- */
@media (max-width: 767px) {
	.nav-toggler[b-12oo9hpqgc] {
		display: flex;
	}

	.nav-backdrop[b-12oo9hpqgc] {
		display: block;
	}

	#sidebar-toggler-checkbox:checked ~ .app-shell .nav-backdrop[b-12oo9hpqgc] {
		opacity: 1;
		pointer-events: auto;
	}

	.topbar[b-12oo9hpqgc] {
		display: flex;
		padding: 12px 16px;
		gap: 12px;
	}

	.content[b-12oo9hpqgc] {
		padding: 18px 16px 32px;
	}
}

#blazor-error-ui[b-12oo9hpqgc] {
	background: lightyellow;
	bottom: 0;
	box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
	display: none;
	left: 0;
	padding: 0.6rem 1.25rem 0.7rem 1.25rem;
	position: fixed;
	width: 100%;
	z-index: 1000;
}

#blazor-error-ui .dismiss[b-12oo9hpqgc] {
	cursor: pointer;
	position: absolute;
	right: 0.75rem;
	top: 0.5rem;
}
/* /Components/Layout/NavMenu.razor.rz.scp.css */
/* La regla scoped (.sidebar[b-xxx]) gana en especificidad a la .sidebar global
   (off-canvas) de app.css, por eso reseteamos aquí las propiedades heredadas. */
.sidebar[b-02hezlotqa] {
	width: 248px;
	flex-shrink: 0;
	background: var(--nrh-sidebar);
	display: flex;
	flex-direction: column;
	position: sticky;
	top: 0;
	left: auto;
	height: 100vh;
	padding: 18px 14px;
	transform: none;
	pointer-events: auto;
	z-index: auto;
	transition: width 0.18s;
}

/* ---------- Marca ---------- */
.sidebar-brand[b-02hezlotqa] {
	display: flex;
	align-items: center;
	padding: 6px 8px 22px;
}

/* ---------- Navegación ---------- */
.nav[b-02hezlotqa] {
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.nav-group[b-02hezlotqa] {
	display: flex;
	flex-direction: column;
	gap: 3px;
}

/* nav-btn lo renderizan NavLink (<a>) y <button>, hijos del árbol: ::deep. */
.sidebar[b-02hezlotqa]  .nav-btn {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 12px;
	border: none;
	border-radius: 11px;
	font: inherit;
	font-size: 13.5px;
	font-weight: 600;
	cursor: pointer;
	width: 100%;
	text-align: left;
	text-decoration: none;
	background: transparent;
	color: rgba(255, 255, 255, 0.55);
	transition: background 0.15s, color 0.15s;
}

.sidebar[b-02hezlotqa]  .nav-btn:hover {
	background: rgba(255, 255, 255, 0.06);
	color: #fff;
}

.sidebar[b-02hezlotqa]  .nav-btn.active {
	background: linear-gradient(135deg, rgba(18, 160, 106, 0.22), rgba(19, 112, 201, 0.22));
	color: #fff;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.07);
}

.sidebar[b-02hezlotqa]  .nav-btn .bi {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
}

/* ---------- Dropdown ---------- */
.dropdown-btn .dropdown-label[b-02hezlotqa] {
	flex-grow: 1;
}

.sidebar[b-02hezlotqa]  .dropdown-caret {
	width: 14px;
	height: 14px;
	margin-left: auto;
	transition: 200ms ease;
}

.rotate[b-02hezlotqa]  .dropdown-caret {
	rotate: 180deg;
}

.sub-menu[b-02hezlotqa] {
	display: grid;
	grid-template-rows: 0fr;
	transition: 300ms ease-in-out;
	list-style: none;
	margin: 2px 0 0;
	padding: 0;
}

.sub-menu > div[b-02hezlotqa] {
	overflow: hidden;
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.sub-menu.show[b-02hezlotqa] {
	grid-template-rows: 1fr;
}

.sidebar[b-02hezlotqa]  .nav-sub {
	padding-left: 34px;
	font-size: 13px;
	font-weight: 500;
}

/* ---------- Usuario ---------- */
.sidebar-user[b-02hezlotqa] {
	margin-top: auto;
	border-top: 1px solid rgba(255, 255, 255, 0.08);
	padding-top: 12px;
}

.user-row[b-02hezlotqa] {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 8px;
	border-radius: 11px;
}

.user-info[b-02hezlotqa] {
	min-width: 0;
	flex: 1;
}

.user-name[b-02hezlotqa] {
	font-size: 13px;
	font-weight: 600;
	color: #fff;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.user-role[b-02hezlotqa] {
	font-size: 11.5px;
	color: rgba(255, 255, 255, 0.5);
}

.logout-form[b-02hezlotqa] {
	margin: 0;
	flex-shrink: 0;
}

.logout-btn[b-02hezlotqa] {
	background: transparent;
	border: none;
	padding: 4px;
	cursor: pointer;
	color: rgba(255, 255, 255, 0.55);
	display: flex;
	align-items: center;
	border-radius: 8px;
}

.logout-btn:hover[b-02hezlotqa] {
	color: #fff;
	background: rgba(255, 255, 255, 0.06);
}

/* ---------- Responsive: tablet, colapsa a rail de iconos ---------- */
@media (min-width: 768px) and (max-width: 979px) {
	.sidebar[b-02hezlotqa] {
		width: 74px;
	}

	.sidebar-label[b-02hezlotqa] {
		display: none;
	}

	.sidebar[b-02hezlotqa]  .nav-btn {
		justify-content: center;
	}

	/* Sin etiqueta, el margin-right global de .bi descentraría el icono 6px. */
	.sidebar[b-02hezlotqa]  .nav-btn .bi {
		margin-right: 0;
	}

	/* El nombre vive dentro de BrandRow, otro scope: .sidebar-label no lo alcanza. */
	.sidebar-brand[b-02hezlotqa]  .brand-name {
		display: none;
	}

	.sidebar-brand[b-02hezlotqa] {
		justify-content: center;
		padding-left: 0;
		padding-right: 0;
	}

	.sidebar[b-02hezlotqa]  .nav-sub {
		padding-left: 12px;
	}

	.user-row[b-02hezlotqa] {
		justify-content: center;
	}
}

/* ---------- Responsive: mobile, cajón deslizable (off-canvas) ---------- */
/* El checkbox #sidebar-toggler-checkbox vive en MainLayout, hermano previo de
   .app-shell; aquí solo reaccionamos a su estado. */
@media (max-width: 767px) {
	.sidebar[b-02hezlotqa] {
		position: fixed;
		top: 0;
		left: 0;
		width: 264px;
		max-width: 82vw;
		height: 100dvh;
		z-index: 100;
		transform: translateX(-100%);
		transition: transform 0.25s ease;
		overflow-y: auto;
		box-shadow: 0 0 40px rgba(0, 0, 0, 0.45);
	}

	#sidebar-toggler-checkbox:checked ~ .app-shell .sidebar[b-02hezlotqa] {
		transform: translateX(0);
	}
}
/* /Components/Pages/Error.razor.rz.scp.css */
.request-id[b-h3hhfbgt9g] {
	margin: 16px 0 0;
	font-size: 13px;
	color: var(--nrh-muted);
}
/* /Components/Pages/Home.razor.rz.scp.css */
.home-card-body[b-d67ut115v6] {
	display: flex;
	justify-content: center;
	padding: 32px 0;
}

.home-logo[b-d67ut115v6] {
	max-width: min(100%, 420px);
	height: auto;
}

/* ---------- KPI ---------- */
.kpi-grid[b-d67ut115v6] {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 16px;
	margin-bottom: 20px;
}
/* /Components/Pages/NotFound.razor.rz.scp.css */
.not-found-body[b-2lehgvq44k] {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 16px;
	padding: 16px 0;
	text-align: center;
}

.not-found-img[b-2lehgvq44k] {
	max-width: min(100%, 360px);
	height: auto;
	border-radius: 12px;
}
