@font-face {
  font-family: "Montserrat";
  src: url("/Fuentes/Montserrat-VariableFont_wght.ttf") format("truetype");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}

@font-face {
  font-family: "Montserrat";
  src: url("/Fuentes/Montserrat-Italic-VariableFont_wght.ttf") format("truetype");
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
}

html,
body {
	margin: 0;
	min-height: 100%;
	font-family:
		"Montserrat",
		"Segoe UI Variable",
		"Segoe UI",
		Arial,
		sans-serif;
}

body {
	overflow-x: hidden;
}

* {
	box-sizing: border-box;
}

code {
	font-family: "Cascadia Code", Consolas, monospace;
	color: var(--mud-palette-secondary);
}

.cba-appbar {
	border-bottom: 1px solid rgba(255, 255, 255, .055);
	box-shadow: 0 10px 28px rgba(0, 0, 0, .16) !important;
	backdrop-filter: blur(12px);
}

.cba-brand-mark {
	width: 38px;
	height: 38px;
	margin-left: 7px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 12px;
	font-weight: 900;
	letter-spacing: .04em;
	color: #fff;
	background: linear-gradient(135deg, #397df0, #48b4ff);
	box-shadow:
		0 0 0 1px rgba(255, 255, 255, .10),
		0 6px 18px rgba(55, 125, 240, .30);
}

.cba-appbar-title {
	margin-left: 12px;
	line-height: 1.05;
}

.cba-drawer {
	border-right: 1px solid rgba(255, 255, 255, .05);
}

.cba-drawer-header {
	height: 82px;
	padding: 16px 18px;
	display: flex;
	align-items: center;
	gap: 12px;
}

.cba-drawer-logo {
	width: 42px;
	height: 42px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 14px;
	font-size: 20px;
	font-weight: 900;
	color: #cce3ff;
	background:
		radial-gradient(
			circle at 35% 30%,
			rgba(104, 164, 255, .32),
			rgba(37, 75, 128, .12) 52%,
			rgba(15, 27, 47, .55)
		);
	border: 1px solid rgba(97, 154, 238, .24);
	box-shadow: inset 0 0 18px rgba(79, 141, 255, .08);
}

.cba-drawer-footer {
	position: static;
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 8px;
	padding: 9px 11px;
	border-radius: 10px;
	font-size: 11px;
	color: var(--mud-palette-text-secondary);
	background: rgba(255, 255, 255, .025);
	border: 1px solid rgba(255, 255, 255, .045);
}

.cba-main {
	padding: 32px 24px 64px 14px;
}

.cba-page-header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 24px;
	padding: 8px 2px 2px;
}

.cba-page-title {
	font-weight: 800 !important;
	letter-spacing: -.025em !important;
}

.cba-card {
	border: 1px solid var(--mud-palette-divider);
	border-radius: 16px !important;
	background:
		linear-gradient(
			145deg,
			color-mix(in srgb, var(--mud-palette-surface) 97%, var(--mud-palette-primary) 3%),
			var(--mud-palette-surface)
		) !important;
	box-shadow: 0 10px 30px rgba(0, 0, 0, .10) !important;
}

.cba-status-card {
	display: grid;
	grid-template-columns: 48px 1fr;
	align-items: center;
	gap: 14px;
	min-height: 118px;
}

.cba-status-icon {
	width: 44px;
	height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 13px;
	background: color-mix(in srgb, var(--mud-palette-primary) 10%, transparent);
	border: 1px solid color-mix(in srgb, var(--mud-palette-primary) 18%, transparent);
}

.cba-status-title,
.cba-info-value {
	font-weight: 700 !important;
}

.cba-info-tile {
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 86px;
}

.cba-grid {
	border: 1px solid var(--mud-palette-table-lines);
	border-radius: 14px;
	overflow: hidden;
}

.cba-grid .mud-table-head {
	background:
		linear-gradient(
			180deg,
			color-mix(in srgb, var(--mud-palette-primary) 13%, var(--mud-palette-surface) 87%),
			var(--mud-palette-surface)
		);
}

.cba-grid .mud-table-head .mud-table-cell {
	font-weight: 800;
	letter-spacing: .02em;
	color: var(--mud-palette-text-primary);
}

.cba-architecture {
	display: grid;
	grid-template-columns: 1fr auto 1fr auto 1.5fr;
	align-items: center;
	gap: 16px;
}

.cba-architecture > div:not(.cba-arrow) {
	min-height: 94px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 18px;
	border-radius: 14px;
	border: 1px solid var(--mud-palette-divider);
	background: color-mix(in srgb, var(--mud-palette-surface) 92%, var(--mud-palette-primary) 8%);
}

.cba-architecture strong {
	font-size: 16px;
	color: var(--mud-palette-primary);
}

.cba-architecture span {
	margin-top: 5px;
	font-size: 12px;
	color: var(--mud-palette-text-secondary);
}

.cba-arrow {
	font-size: 22px;
	color: var(--mud-palette-secondary);
}

.cba-centered-card {
	max-width: 620px;
	margin: 9vh auto 0;
	text-align: center;
}

.mud-nav-link.active:not(.mud-nav-link-disabled) {
	background:
		linear-gradient(
			90deg,
			rgba(79, 141, 255, .18),
			rgba(45, 212, 191, .04)
		) !important;
	color: var(--mud-palette-primary) !important;
	border-left: 3px solid var(--mud-palette-primary);
}

.mud-nav-link {
	border-radius: 10px !important;
	margin-bottom: 2px;
}

@media (max-width: 960px) {
	.cba-main {
		padding: 24px 16px 48px 11px;
	}

	.cba-page-header {
		flex-direction: column;
		align-items: flex-start;
	}

	.cba-architecture {
		grid-template-columns: 1fr;
	}

	.cba-arrow {
		transform: rotate(90deg);
		text-align: center;
	}
}

@media (max-width: 600px) {
	.cba-main {
		padding: 18px 10px 40px 8px;
	}

	.cba-appbar-title {
		display: none;
	}
}


.cba-login-layout {
	position: relative;
	min-height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 28px 18px;
	background:
		radial-gradient(
			circle at 18% 12%,
			rgba(79, 141, 255, .13),
			transparent 30%
		),
		radial-gradient(
			circle at 88% 86%,
			rgba(45, 212, 191, .08),
			transparent 28%
		),
		var(--mud-palette-background);
}

.cba-login-theme {
	position: fixed;
	top: 14px;
	right: 16px;
	z-index: 50;
}

.cba-login-shell {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.cba-login-card {
	width: min(520px, 100%);
	padding: 34px;
	border: 1px solid var(--mud-palette-divider);
	border-radius: 22px !important;
	background:
		radial-gradient(
			circle at 8% 8%,
			color-mix(in srgb, var(--mud-palette-primary) 10%, transparent),
			transparent 34%
		),
		linear-gradient(
			145deg,
			color-mix(in srgb, var(--mud-palette-surface) 98%, var(--mud-palette-primary) 2%),
			var(--mud-palette-surface)
		) !important;
	box-shadow:
		0 30px 90px rgba(0, 0, 0, .34) !important;
}

.cba-login-brand {
	display: flex;
	align-items: center;
	gap: 18px;
}

.cba-login-logo {
	width: 70px;
	height: 70px;
	flex: 0 0 70px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 20px;
	font-size: 20px;
	font-weight: 900;
	letter-spacing: .06em;
	color: #fff;
	background:
		linear-gradient(
			135deg,
			#397df0,
			#48b4ff
		);
	box-shadow:
		0 0 0 1px rgba(255, 255, 255, .10),
		0 12px 30px rgba(55, 125, 240, .30);
}

.cba-login-logo-secondary {
	background:
		linear-gradient(
			135deg,
			#167f86,
			#2dd4bf
		);
	box-shadow:
		0 0 0 1px rgba(255, 255, 255, .10),
		0 12px 30px rgba(45, 212, 191, .22);
}

.cba-login-title {
	font-weight: 800 !important;
	letter-spacing: -.025em !important;
}

.cba-login-error {
	min-height: 20px;
	font-weight: 600 !important;
}

.cba-login-footer {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	margin-top: 26px;
	padding-top: 20px;
	border-top: 1px solid var(--mud-palette-divider);
	font-size: 11px;
	color: var(--mud-palette-text-secondary);
}

.cba-login-loading {
	min-height: 60vh;
	display: flex;
	align-items: center;
	justify-content: center;
}

@media (max-width: 600px) {
	.cba-login-layout {
		padding: 16px 12px;
	}

	.cba-login-card {
		padding: 26px 20px;
		border-radius: 18px !important;
	}

	.cba-login-brand {
		align-items: flex-start;
		gap: 14px;
	}

	.cba-login-logo {
		width: 58px;
		height: 58px;
		flex-basis: 58px;
		border-radius: 17px;
		font-size: 17px;
	}
}


.cba-user-chip {
	max-width: 180px;
}

.cba-drawer-tenant {
	min-width: 0;
}

.cba-drawer-tenant .mud-typography {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.cba-access-denied {
	max-width: 720px;
	margin: 56px auto;
	text-align: center;
}

.cba-permission-summary {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}


.cba-drawer .mud-drawer-content {
	height: 100%;
	display: grid !important;
	grid-template-rows: auto auto minmax(0, 1fr) auto;
	overflow: hidden;
}

.cba-drawer-menu-scroll {
	min-height: 0;
	overflow-y: auto;
	overflow-x: hidden;
	align-self: stretch;
	padding-top: 0;
}

.cba-drawer-menu-scroll .cba-real-menu {
	margin: 0;
}




/* CBA 004C - ActionBar / Grid / Mobile table / Keyboard */

.cba-drawer-menu-scroll {
	scrollbar-gutter: stable;
}

.cba-users-grid-top {
	display: flex;
	align-items: stretch;
	justify-content: space-between;
	gap: 12px;
	margin: 3px 0 11px;
}

.cba-users-grid-top .cba-actionbar {
	flex: 0 1 auto;
}

.cba-users-search {
	flex: 0 0 220px;
	width: 220px;
	align-self: stretch;
}

.cba-users-search .mud-input-control {
	height: 100%;
}

.cba-users-search .mud-input-outlined-border {
	border-radius: 12px !important;
	border-color: rgba(84, 184, 255, .24) !important;
}

.cba-users-grid-scroll {
	width: 100%;
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior-x: contain;
	border: 1px solid var(--mud-palette-table-lines);
	border-radius: 13px 13px 0 0;
	background: var(--mud-palette-surface);
}

.cba-users-grid {
	min-width: 0;
	border: 0 !important;
	border-radius: 0 !important;
}

.cba-users-grid .mud-table-container {
	width: 100%;
	overflow-x: visible !important;
}

.cba-users-grid table,
.cba-users-grid .mud-table-root {
	width: 100% !important;
	table-layout: fixed;
}

.cba-users-grid .mud-table-head {
	position: relative;
	z-index: 2;
	background:
		linear-gradient(
			180deg,
			#0a111e,
			#0d1726 68%,
			color-mix(
				in srgb,
				var(--mud-palette-primary) 8%,
				#0d1726
			)
		) !important;
	box-shadow:
		0 3px 0 rgba(79, 141, 255, .22),
		0 7px 14px rgba(0, 0, 0, .19);
}

.cba-users-grid .mud-table-head .mud-table-cell {
	height: 46px !important;
	min-height: 46px !important;
	padding: 6px 8px !important;
	font-size: 11.5px !important;
	font-weight: 850 !important;
	line-height: 1.1 !important;
	letter-spacing: .022em;
	color: #e6eef9 !important;
	white-space: nowrap;
	border-bottom:
		1px solid
		rgba(105, 162, 244, .25) !important;
}

.cba-users-grid .mud-table-body .mud-table-cell {
	height: 40px !important;
	min-height: 40px !important;
	padding: 5px 8px !important;
	font-size: 11.7px !important;
	line-height: 1.2 !important;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	transition:
		background .14s ease,
		color .14s ease;
}

.cba-users-grid .mud-table-body .mud-table-row {
	border-bottom:
		1px solid
		rgba(255, 255, 255, .028);
}

.cba-users-grid .mud-chip {
	height: 23px !important;
	min-height: 23px !important;
	font-size: 10px !important;
}

.cba-users-grid .mud-table-row:hover {
	background:
		linear-gradient(
			90deg,
			rgba(79, 141, 255, .12),
			rgba(45, 212, 191, .045)
		) !important;
}

.cba-users-grid .mud-table-row.mud-selected,
.cba-users-grid .mud-table-row.mud-selected:hover,
.cba-users-grid .mud-table-row.mud-table-row-selected,
.cba-users-grid .mud-table-row.mud-table-row-selected:hover,
.cba-users-grid .mud-table-row.cba-selected-row,
.cba-users-grid .mud-table-row.cba-selected-row:hover {
	background:
		linear-gradient(
			90deg,
			rgba(137, 83, 231, .97),
			rgba(112, 72, 207, .84) 48%,
			rgba(70, 53, 151, .68)
		) !important;
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, .12),
		inset 0 -1px 0 rgba(255, 255, 255, .09);
}

.cba-users-grid .mud-table-row.mud-selected .mud-table-cell,
.cba-users-grid .mud-table-row.mud-table-row-selected .mud-table-cell,
.cba-users-grid .mud-table-row.cba-selected-row .mud-table-cell {
	color: #fff !important;
	font-weight: 650;
}

.cba-users-grid .mud-table-pagination {
	min-height: 39px !important;
	font-size: 11px;
	border-top:
		1px solid
		rgba(79, 141, 255, .14);
}

.cba-users-grid-footer {
	min-height: 30px;
	display: flex;
	align-items: center;
	padding: 5px 9px;
	border: 1px solid var(--mud-palette-table-lines);
	border-top: 0;
	border-radius: 0 0 11px 11px;
	font-size: 10.5px;
	color: var(--mud-palette-text-secondary);
	background:
		linear-gradient(
			180deg,
			rgba(255, 255, 255, .018),
			rgba(255, 255, 255, .005)
		);
}

@media (max-width: 1000px) {
	.cba-users-grid-top {
		flex-wrap: wrap;
	}

	.cba-users-search {
		flex-basis: 210px;
		width: 210px;
		margin-left: auto;
	}

	.cba-users-grid table,
	.cba-users-grid .mud-table-root {
		min-width: 760px !important;
	}
}

@media (max-width: 700px) {
	.cba-users-grid-top {
		display: flex;
		flex-direction: column;
		align-items: stretch;
		gap: 9px;
	}

	.cba-users-grid-top .cba-actionbar {
		width: 100%;
	}

	.cba-users-search {
		width: min(210px, 100%);
		flex-basis: auto;
		align-self: flex-end;
		margin-left: 0;
	}

	.cba-users-grid-scroll {
		display: block !important;
		overflow-x: auto !important;
		overflow-y: hidden !important;
		touch-action: pan-x pan-y;
	}

	/*
	 * MudBlazor convierte las tablas en una vista "stacked/card"
	 * en pantallas pequeñas. En CBA la anulamos: incluso en celular
	 * el usuario sigue viendo una tabla real y se desplaza lateralmente.
	 */
	.cba-users-grid table,
	.cba-users-grid .mud-table-root {
		display: table !important;
		width: 760px !important;
		min-width: 760px !important;
		table-layout: fixed !important;
	}

	.cba-users-grid .mud-table-head {
		display: table-header-group !important;
	}

	.cba-users-grid .mud-table-body {
		display: table-row-group !important;
	}

	.cba-users-grid .mud-table-row,
	.cba-users-grid .mud-table-body .mud-table-row {
		display: table-row !important;
	}

	.cba-users-grid .mud-table-cell,
	.cba-users-grid .mud-table-head .mud-table-cell,
	.cba-users-grid .mud-table-body .mud-table-cell {
		display: table-cell !important;
		position: static !important;
		width: auto;
	}

	.cba-users-grid .mud-table-cell::before,
	.cba-users-grid .mud-table-cell:before {
		display: none !important;
		content: none !important;
	}

	.cba-users-grid .mud-table-body .mud-table-cell {
		height: 41px !important;
		min-height: 41px !important;
		font-size: 11.5px !important;
	}

	.cba-users-grid .mud-table-head .mud-table-cell {
		height: 47px !important;
		min-height: 47px !important;
	}
}


/* CBA 004D - refinamiento visual y status strip */

.cba-appbar-with-strip .mud-toolbar {
	position: relative;
	min-height: 86px !important;
	height: 86px !important;
	padding: 0 !important;
	display: block !important;
}

.cba-appbar-main-row {
	height: 62px;
	display: flex;
	align-items: center;
	width: 100%;
	padding: 0 16px;
}

.cba-global-status-strip {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 24px;
	display: flex;
	align-items: center;
	gap: 7px;
	padding: 0 17px;
	border-top: 1px solid rgba(255, 255, 255, .045);
	background:
		linear-gradient(
			90deg,
			rgba(79, 141, 255, .065),
			rgba(45, 212, 191, .025) 55%,
			rgba(255, 255, 255, .012)
		);
	font-size: 10px;
	color: #8998ad;
	white-space: nowrap;
	overflow: hidden;
}


.cba-header-breadcrumb {
	min-width: 0;
	max-width: min(72vw, 920px);
	display: flex;
	align-items: center;
	overflow: hidden;
}

.cba-header-breadcrumb .cba-breadcrumb {
	width: 100%;
}

.cba-status-item.strong {
	font-weight: 800;
	color: #c8d5e7;
}

.cba-status-item.online {
	color: #67dcb8;
}

.cba-status-separator {
	color: #4c5d73;
}

.cba-status-online-dot {
	width: 6px;
	height: 6px;
	flex: 0 0 6px;
	border-radius: 50%;
	background: #36d399;
	box-shadow: 0 0 7px rgba(54, 211, 153, .55);
}

/* El antiguo footer del drawer deja de existir en 004D. */
.cba-drawer .mud-drawer-content {
	grid-template-rows: auto auto minmax(0, 1fr) !important;
}

/* ActionBar y Search: bases inferiores alineadas y más aire respecto al grid. */
.cba-users-grid-top {
	align-items: flex-end !important;
	gap: 13px !important;
	margin: 4px 0 14px !important;
}

.cba-users-grid-top .cba-actionbar {
	flex: 0 1 auto;
	min-width: 0;
}

.cba-users-search {
	flex: 0 0 188px !important;
	width: 188px !important;
	height: 56px;
	align-self: flex-end !important;
}

.cba-users-search .mud-input-control,
.cba-users-search .mud-input-root {
	height: 56px;
}

.cba-users-search .mud-input-outlined-border {
	border-radius: 13px !important;
}

/* Header oscuro, sin la raya azul entre header y cuerpo. */
.cba-users-grid .mud-table-head {
	background:
		linear-gradient(
			180deg,
			#070c15,
			#0a111d 72%,
			#0b1422
		) !important;
	box-shadow: 0 5px 13px rgba(0, 0, 0, .18) !important;
}

.cba-users-grid .mud-table-head .mud-table-cell {
	border-bottom: 1px solid rgba(255, 255, 255, .045) !important;
}

/* Selección violeta CBA. */
.cba-users-grid .mud-table-row.mud-selected,
.cba-users-grid .mud-table-row.mud-selected:hover,
.cba-users-grid .mud-table-row.mud-table-row-selected,
.cba-users-grid .mud-table-row.mud-table-row-selected:hover,
.cba-users-grid .mud-table-row.cba-selected-row,
.cba-users-grid .mud-table-row.cba-selected-row:hover {
	background:
		linear-gradient(
			90deg,
			rgba(137, 83, 231, .97),
			rgba(112, 72, 207, .84) 48%,
			rgba(70, 53, 151, .68)
		) !important;
	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, .10),
		inset 0 -1px 0 rgba(255, 255, 255, .07) !important;
}

/* El header de páginas viejo ya no participa del diseño normal. */
.cba-page-header {
	padding: 0;
}

@media (max-width: 700px) {
	.cba-appbar-main-row {
		padding: 0 8px;
	}

	.cba-global-status-strip {
		padding-inline: 10px;
		font-size: 9px;
	}

	.cba-users-search {
		width: min(178px, 100%) !important;
		flex-basis: auto !important;
	}
}


/* ==========================================================================
	 CBA 005 - Núcleo operativo
	 ========================================================================== */

.cba-status-idle {
	opacity: .72;
}

.cba-global-error {
	max-width: 680px;
	margin: 18px auto;
}

.cba-session-actions {
	display: flex;
	align-items: flex-end;
	margin: 2px 0 11px;
}

.cba-session-grid-scroll {
	width: 100%;
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior-x: contain;
	border: 1px solid var(--mud-palette-table-lines);
	border-radius: 13px 13px 0 0;
}

.cba-session-grid {
	min-width: 0;
	border: 0 !important;
	border-radius: 0 !important;
}

.cba-session-grid .mud-table-container {
	width: 100%;
	overflow-x: visible !important;
}

.cba-session-grid table,
.cba-session-grid .mud-table-root {
	width: 100% !important;
	table-layout: fixed;
}

.cba-session-grid .mud-table-head {
	background:
		linear-gradient(
			180deg,
			#0a111e,
			#0d1726
		) !important;
}

.cba-session-grid .mud-table-head .mud-table-cell {
	height: 45px !important;
	padding: 6px 8px !important;
	font-size: 11.5px !important;
	font-weight: 820 !important;
	color: #e6eef9 !important;
	white-space: nowrap;
	vertical-align: middle !important;
	text-align: left !important;
}

/* Sesiones: misma semántica que el resto de CBA.
	 El encabezado se centra solamente en vertical; al ser texto, queda a la izquierda. */
.cba-session-grid .mud-table-head .mud-table-cell .column-header,
.cba-session-grid .mud-table-head .mud-table-cell .mud-table-sort-label {
	min-height: 33px;
	height: 100%;
	display: flex;
	align-items: center !important;
	justify-content: flex-start !important;
	text-align: left !important;
}

.cba-session-grid .mud-table-body .mud-table-cell {
	height: 39px !important;
	padding: 5px 8px !important;
	font-size: 11.5px !important;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.cba-session-grid .mud-table-row.cba-current-session-row {
	background:
		linear-gradient(
			90deg,
			rgba(45, 212, 191, .12),
			rgba(45, 212, 191, .035)
		) !important;
}

.cba-session-grid .mud-table-row.cba-selected-row,
.cba-session-grid .mud-table-row.cba-selected-row:hover {
	background:
		linear-gradient(
			90deg,
			rgba(132, 76, 214, .88),
			rgba(84, 59, 156, .68)
		) !important;
}

.cba-session-grid .mud-table-row.cba-selected-row .mud-table-cell {
	color: #fff !important;
}

.cba-session-user {
	display: flex;
	align-items: center;
	gap: 7px;
	min-width: 0;
}

.cba-session-user > span:first-child {
	overflow: hidden;
	text-overflow: ellipsis;
}

.cba-exit-shell {
	min-height: 70vh;
	display: grid;
	place-items: center;
	padding: 24px;
}

.cba-exit-card {
	width: min(520px, 100%);
	padding: 34px;
	text-align: center;
	border: 1px solid rgba(255, 255, 255, .075);
	border-radius: 18px;
	background:
		radial-gradient(
			circle at 50% 0%,
			rgba(79, 141, 255, .12),
			transparent 38%
		),
		linear-gradient(
			145deg,
			#152238,
			#0a111d 68%,
			#080d16
		);
	box-shadow:
		0 28px 70px rgba(0, 0, 0, .38);
}

.cba-exit-icon {
	width: 58px;
	height: 58px;
	display: grid;
	place-items: center;
	margin: 0 auto;
	border-radius: 16px;
	color: #7fa7ff;
	background: rgba(79, 141, 255, .10);
	box-shadow:
		0 0 24px rgba(79, 141, 255, .12);
}

@media (max-width: 900px) {
	.cba-session-grid table,
	.cba-session-grid .mud-table-root {
		width: 880px !important;
		min-width: 880px !important;
	}
}

@media (max-width: 700px) {
	.cba-status-idle {
		display: none;
	}

	.cba-session-grid-scroll {
		display: block !important;
		overflow-x: auto !important;
		touch-action: pan-x pan-y;
	}

	.cba-session-grid table,
	.cba-session-grid .mud-table-root {
		display: table !important;
		width: 880px !important;
		min-width: 880px !important;
		table-layout: fixed !important;
	}

	.cba-session-grid .mud-table-head {
		display: table-header-group !important;
	}

	.cba-session-grid .mud-table-body {
		display: table-row-group !important;
	}

	.cba-session-grid .mud-table-row {
		display: table-row !important;
	}

	.cba-session-grid .mud-table-cell {
		display: table-cell !important;
		position: static !important;
	}

	.cba-session-grid .mud-table-cell::before,
	.cba-session-grid .mud-table-cell:before {
		display: none !important;
		content: none !important;
	}
}


.cba-password-actions {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 9px;
	margin-top: 4px;
}

@media (max-width: 520px) {
	.cba-password-actions {
		grid-template-columns: 1fr;
	}
}


.cba-test-access-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
}

.cba-test-access-grid > div {
	display: flex;
	flex-direction: column;
	gap: 5px;
	padding: 14px;
	border: 1px solid rgba(255, 255, 255, .065);
	border-radius: 12px;
	background: rgba(255, 255, 255, .018);
}

.cba-test-access-grid code {
	width: fit-content;
	color: #9db7ff;
}

.cba-test-access-grid span {
	color: var(--mud-palette-text-secondary);
	font-size: 12px;
}

@media (max-width: 820px) {
	.cba-test-access-grid {
		grid-template-columns: 1fr;
	}
}


/* ==========================================================================
	 CBA 006 - Prueba de locks/concurrencia (Development)
	 ========================================================================== */

.cba-lock-test-inputs {
	display: grid;
	grid-template-columns: 150px 170px minmax(220px, 1fr);
	gap: 10px;
	align-items: end;
}

.cba-lock-test-actions {
	display: flex;
	align-items: flex-end;
	margin-top: 11px;
}

.cba-lock-owner {
	display: grid;
	grid-template-columns: minmax(180px, 1.4fr) repeat(3, minmax(120px, 1fr));
	gap: 10px;
	padding: 14px;
	border: 1px solid rgba(255, 255, 255, .07);
	border-radius: 13px;
	background:
		linear-gradient(
			135deg,
			rgba(111, 140, 255, .09),
			rgba(255, 255, 255, .018)
		);
}

.cba-lock-owner > div {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 3px;
}

.cba-lock-owner > div:first-child {
	justify-content: center;
}

.cba-lock-owner span {
	color: var(--mud-palette-text-secondary);
	font-size: 10px;
	text-transform: uppercase;
	letter-spacing: .04em;
}

.cba-lock-owner strong {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	font-size: 12px;
}

.cba-lock-owner .wide {
	grid-column: span 2;
}

@media (max-width: 900px) {
	.cba-lock-test-inputs {
		grid-template-columns: 1fr 1fr;
	}

	.cba-lock-test-inputs > :last-child {
		grid-column: 1 / -1;
	}

	.cba-lock-owner {
		grid-template-columns: 1fr 1fr;
	}

	.cba-lock-owner .wide {
		grid-column: 1 / -1;
	}
}

@media (max-width: 560px) {
	.cba-lock-test-inputs,
	.cba-lock-owner {
		grid-template-columns: 1fr;
	}

	.cba-lock-test-inputs > :last-child,
	.cba-lock-owner .wide {
		grid-column: auto;
	}
}


/* ==========================================================================
	 CBA 007 - Auditoría
	 ========================================================================== */

.cba-audit-filter-grid {
	display: grid;
	grid-template-columns:
		minmax(130px, .8fr)
		minmax(100px, .55fr)
		minmax(130px, .8fr)
		minmax(100px, .55fr)
		minmax(190px, 1.2fr);
	gap: 9px;
}

.cba-audit-filter-grid > :nth-child(n + 6) {
	grid-column: span 1;
}

.cba-audit-filter-actions {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 12px;
	margin-top: 12px;
}

.cba-audit-summary {
	display: flex;
	gap: 14px;
	align-items: center;
	justify-content: flex-end;
	color: var(--mud-palette-text-secondary);
	font-size: 11px;
	white-space: nowrap;
}

.cba-audit-grid-scroll {
	width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

@media (max-width: 1080px) {
	.cba-audit-filter-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.cba-audit-filter-actions {
		flex-direction: column;
		align-items: stretch;
	}

	.cba-audit-summary {
		justify-content: flex-start;
	}
}

@media (max-width: 620px) {
	.cba-audit-filter-grid {
		grid-template-columns: 1fr;
	}

}

/* ==========================================================================
	 CBA 007A - Auditoría: mismo grid base de Usuarios
	 ========================================================================== */

.cba-audit-grid-scroll.cba-users-grid-scroll {
	width: 100%;
}

/* Conserva exactamente header, hover y barra de selección de Usuarios. */
.cba-audit-grid.cba-users-grid .mud-table-body .mud-table-cell {
	height: 35px !important;
	min-height: 35px !important;
	padding: 3px 8px !important;
	font-size: 11.25px !important;
}

.cba-audit-grid.cba-users-grid .mud-table-head .mud-table-cell {
	height: 46px !important;
	min-height: 46px !important;
}

@media (max-width: 700px) {
	.cba-audit-grid.cba-users-grid .mud-table-body .mud-table-cell {
		height: 36px !important;
		min-height: 36px !important;
	}
}

/* ==========================================================================
	 CBA 007B - Dialogs: un único scroll vertical
	 ========================================================================== */

.mud-dialog.cba-scroll-dialog-host {
	max-height: calc(100vh - 24px) !important;
	max-height: calc(100dvh - 24px) !important;
	display: flex !important;
	flex-direction: column !important;
	overflow: hidden !important;
}

.mud-dialog.cba-scroll-dialog-host > .mud-dialog-content,
.mud-dialog.cba-scroll-dialog-host .mud-dialog-content {
	display: flex !important;
	flex: 1 1 auto !important;
	flex-direction: column !important;
	min-height: 0 !important;
	max-height: calc(100vh - 24px) !important;
	max-height: calc(100dvh - 24px) !important;
	padding: 0 !important;
	overflow: hidden !important;
}

.mud-dialog.cba-scroll-dialog-host .cba-user-dialog,
.mud-dialog.cba-scroll-dialog-host .cba-exception-dialog,
.mud-dialog.cba-scroll-dialog-host .cba-audit-dialog,
.mud-dialog.cba-scroll-dialog-host .cba-reset-dialog,
.mud-dialog.cba-scroll-dialog-host .cba-presupuesto-dialog,
.mud-dialog.cba-scroll-dialog-host .cba-partida-dialog,
.mud-dialog.cba-scroll-dialog-host .cba-presupuesto-pdf-dialog,
.mud-dialog.cba-scroll-dialog-host .cba-borrador-dialog {
	flex: 1 1 auto;
	min-height: 0;
	max-height: calc(100vh - 24px) !important;
	max-height: calc(100dvh - 24px) !important;
	overflow: hidden !important;
}

.mud-dialog.cba-scroll-dialog-host .cba-dialog-scroll {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto !important;
	overflow-x: hidden;
	overscroll-behavior: contain;
	-webkit-overflow-scrolling: touch;
	touch-action: pan-y;
	scrollbar-gutter: stable;
}


/* CBA 008A2 - Montserrat global UI */
body,
button,
input,
select,
textarea,
.mud-typography,
.mud-button-root,
.mud-input,
.mud-table,
.mud-chip,
.mud-menu-item,
.mud-list-item,
.mud-nav-link {
	font-family:
		"Montserrat",
		"Segoe UI Variable",
		"Segoe UI",
		Arial,
		sans-serif !important;
}


/* ==========================================================================
	 CBA 008A2 - tema claro / scrollbar / visor PDF
	 ========================================================================== */

.cba-theme-dark .cba-drawer-menu-scroll {
	scrollbar-color: #414b59 #171e29;
	scrollbar-width: thin;
}

.cba-theme-dark .cba-drawer-menu-scroll::-webkit-scrollbar {
	width: 9px;
}

.cba-theme-dark .cba-drawer-menu-scroll::-webkit-scrollbar-track {
	background: #171e29;
}

.cba-theme-dark .cba-drawer-menu-scroll::-webkit-scrollbar-thumb {
	border: 2px solid #171e29;
	border-radius: 999px;
	background: #414b59;
}

.cba-theme-dark .cba-drawer-menu-scroll::-webkit-scrollbar-thumb:hover {
	background: #566171;
}

.cba-theme-light .cba-drawer {
	border-right-color: #d6dee9;
}

.cba-theme-light .cba-drawer-header {
	color: var(--mud-palette-text-primary);
}

.cba-theme-light .cba-drawer-logo {
	color: #245f9d;
	background:
		radial-gradient(
			circle at 35% 30%,
			rgba(79, 141, 255, .18),
			rgba(79, 141, 255, .05) 55%,
			rgba(255, 255, 255, .92)
		);
	border-color: rgba(47, 111, 214, .20);
}

.cba-theme-light .cba-users-grid .mud-table-head {
	background:
		linear-gradient(
			180deg,
			color-mix(in srgb, var(--mud-palette-primary) 10%, #ffffff),
			color-mix(in srgb, var(--mud-palette-primary) 4%, #ffffff) 72%,
			#ffffff
		) !important;
	box-shadow:
		0 5px 13px rgba(42, 61, 85, .08) !important;
}

.cba-theme-light .cba-users-grid .mud-table-head .mud-table-cell {
	color: #27384d !important;
	border-bottom:
		1px solid
		color-mix(in srgb, var(--mud-palette-primary) 14%, #d9e1eb) !important;
}

.cba-theme-light .cba-users-grid .mud-table-body .mud-table-row {
	border-bottom-color: rgba(39, 56, 77, .07);
}

.cba-theme-light .cba-users-grid-footer {
	background:
		linear-gradient(
			180deg,
			rgba(47, 111, 214, .035),
			rgba(255, 255, 255, .82)
		);
}

.cba-theme-light .cba-global-status-strip {
	color: #66758a;
	border-top-color: rgba(39, 56, 77, .09);
	background:
		linear-gradient(
			90deg,
			rgba(47, 111, 214, .075),
			rgba(14, 156, 139, .035) 55%,
			rgba(255, 255, 255, .55)
		);
}

.cba-theme-light .cba-status-item.strong {
	color: #344357;
}

.cba-theme-light .cba-status-separator {
	color: #9aa8b9;
}

.cba-theme-light .mud-dialog .cba-presupuesto-dialog,
.cba-theme-light .mud-dialog .cba-partida-dialog,
.cba-theme-light .mud-dialog .cba-confirm-dialog,
.cba-theme-light .mud-dialog .cba-borrador-dialog,
.cba-theme-light .mud-dialog .cba-presupuesto-pdf-dialog {
	color: var(--mud-palette-text-primary);
	background:
		linear-gradient(
			145deg,
			color-mix(in srgb, var(--mud-palette-primary) 4%, #ffffff),
			#ffffff 64%,
			#f3f6fa
		) !important;
}

.cba-theme-light .mud-dialog .mud-divider {
	border-color: rgba(39, 56, 77, .10);
}

.cba-theme-light .cba-partidas-toolbar {
	border-color: rgba(47, 111, 214, .14);
	background:
		linear-gradient(
			180deg,
			color-mix(in srgb, var(--mud-palette-primary) 5%, #ffffff),
			#ffffff
		);
	box-shadow:
		0 10px 26px rgba(45, 62, 84, .10),
		inset 0 1px 0 rgba(255, 255, 255, .9);
}

[data-cba-keyboard-grid="true"] {
	outline: none;
}

body.cba-pdf-open {
	overflow: hidden !important;
}

.cba-pdf-overlay {
	position: fixed;
	z-index: 5000;
	inset: 0;
	padding: 10px;
	background: rgba(3, 7, 13, .86);
	backdrop-filter: blur(8px);
}

.cba-pdf-shell {
	width: 100%;
	height: 100%;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid rgba(125, 159, 205, .24);
	border-radius: 14px;
	background: #111827;
	box-shadow: 0 30px 90px rgba(0, 0, 0, .55);
}

.cba-pdf-toolbar {
	height: 54px;
	flex: 0 0 54px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 8px 12px 8px 16px;
	border-bottom: 1px solid #2a384e;
	background:
		linear-gradient(
			90deg,
			#111c2d,
			#0b1220
		);
}

.cba-pdf-title {
	display: flex;
	align-items: baseline;
	gap: 12px;
	min-width: 0;
}

.cba-pdf-title strong {
	font-size: 14px;
	color: #eef5fc;
}

.cba-pdf-title span {
	font-size: 10px;
	color: #9cafc6;
}

.cba-pdf-close {
	min-width: 86px;
	height: 36px;
	border: 1px solid #425772;
	border-radius: 9px;
	color: #dbe7f5;
	background: #18263a;
	font: 650 11px Montserrat, system-ui, sans-serif;
	cursor: pointer;
}

.cba-pdf-close:hover,
.cba-pdf-close:focus-visible {
	background: #263a57;
	border-color: #6685aa;
	outline: none;
}

.cba-pdf-loading {
	flex: 1 1 auto;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	color: #dce7f4;
	background: #101827;
}

.cba-pdf-loading.hidden {
	display: none;
}

.cba-pdf-loading span {
	font-size: 11px;
	color: #9cafc6;
}

.cba-pdf-spinner {
	width: 34px;
	height: 34px;
	margin-bottom: 7px;
	border: 3px solid rgba(84, 184, 255, .18);
	border-top-color: #54b8ff;
	border-radius: 50%;
	animation: cba-pdf-spin .75s linear infinite;
}

.cba-pdf-frame {
	flex: 1 1 auto;
	width: 100%;
	min-height: 0;
	display: none;
	border: 0;
	background: #111827;
}

.cba-pdf-frame.visible {
	display: block;
}

@keyframes cba-pdf-spin {
	to {
		transform: rotate(360deg);
	}
}

@media (max-width: 700px) {
	.cba-pdf-overlay {
		padding: 0;
	}

	.cba-pdf-shell {
		border: 0;
		border-radius: 0;
	}

	.cba-pdf-title span {
		display: none;
	}
}


/* --------------------------------------------------------------------------
	 CBA 008A2 - terminación del modo claro
	 -------------------------------------------------------------------------- */

.cba-theme-light .cba-actionbar {
	border-color: #d6e0eb !important;
	background:
		linear-gradient(
			180deg,
			#ffffff,
			#f5f8fc
		) !important;
	box-shadow:
		0 8px 20px rgba(44, 62, 84, .10),
		inset 0 1px 0 rgba(255, 255, 255, .95) !important;
}

.cba-theme-light .cba-action-button {
	color: #55667b !important;
}

.cba-theme-light .cba-grid .mud-table-head,
.cba-theme-light .cba-session-grid .mud-table-head,
.cba-theme-light .cba-users-grid .mud-table-head {
	background:
		linear-gradient(
			180deg,
			color-mix(in srgb, var(--mud-palette-primary) 13%, #ffffff),
			color-mix(in srgb, var(--mud-palette-primary) 6%, #ffffff) 68%,
			#f8fbff
		) !important;
	box-shadow:
		0 5px 13px rgba(42, 61, 85, .09) !important;
}

.cba-theme-light .cba-grid .mud-table-head .mud-table-cell,
.cba-theme-light .cba-session-grid .mud-table-head .mud-table-cell,
.cba-theme-light .cba-users-grid .mud-table-head .mud-table-cell {
	color: #26394f !important;
	border-bottom: 1px solid #d8e3ef !important;
}

.cba-theme-light .cba-grid .mud-table-body .mud-table-row,
.cba-theme-light .cba-session-grid .mud-table-body .mud-table-row,
.cba-theme-light .cba-users-grid .mud-table-body .mud-table-row {
	border-bottom-color: rgba(39, 56, 77, .075) !important;
}

/*
 * Acordeón claro: arco iris pastel por módulo y degradación jerárquica real.
 * Padre > hijo > nieto, siempre dentro de la misma tonalidad.
 */
.cba-theme-light .cba-drawer .cba-menu-node-button {
	color: #405167 !important;
}

.cba-theme-light .cba-drawer .cba-menu-node-button.root {
	color: #213247 !important;
	background:
		linear-gradient(
			90deg,
			color-mix(in srgb, var(--module) 92%, #ffffff),
			color-mix(in srgb, var(--module) 68%, #ffffff)
		) !important;
	box-shadow:
		inset 0 0 0 1px color-mix(in srgb, var(--module-hover) 18%, #dce5ef),
		0 2px 8px color-mix(in srgb, var(--module) 16%, transparent) !important;
}

.cba-theme-light .cba-drawer .cba-menu-node-button.level-1 {
	background:
		linear-gradient(
			90deg,
			color-mix(in srgb, var(--module) 52%, #ffffff),
			color-mix(in srgb, var(--module) 30%, #ffffff)
		) !important;
}

.cba-theme-light .cba-drawer .cba-menu-node-button.level-2 {
	background:
		linear-gradient(
			90deg,
			color-mix(in srgb, var(--module) 28%, #ffffff),
			color-mix(in srgb, var(--module) 14%, #ffffff)
		) !important;
}

.cba-theme-light .cba-drawer .cba-menu-node-button.level-3 {
	background:
		linear-gradient(
			90deg,
			color-mix(in srgb, var(--module) 17%, #ffffff),
			color-mix(in srgb, var(--module) 7%, #ffffff)
		) !important;
}

.cba-theme-light .cba-drawer .cba-menu-node-button:hover {
	color: #203047 !important;
	background:
		linear-gradient(
			90deg,
			color-mix(in srgb, var(--module-hover) 30%, #ffffff),
			color-mix(in srgb, var(--module) 42%, #ffffff)
		) !important;
	box-shadow:
		inset 3px 0 0 color-mix(in srgb, var(--module-hover) 72%, transparent),
		0 5px 15px color-mix(in srgb, var(--module-hover) 15%, transparent) !important;
}

.cba-theme-light .cba-drawer .cba-menu-node-button.root:hover {
	background:
		linear-gradient(
			90deg,
			color-mix(in srgb, var(--module-hover) 34%, #ffffff),
			color-mix(in srgb, var(--module) 78%, #ffffff)
		) !important;
}

.cba-theme-light .cba-drawer .cba-menu-node-button.selected {
	color: #172638 !important;
	background:
		linear-gradient(
			90deg,
			color-mix(in srgb, var(--module-hover) 66%, #ffffff),
			color-mix(in srgb, var(--module-hover) 42%, #ffffff)
		) !important;
	box-shadow:
		inset 4px 0 0 var(--module-hover),
		0 5px 16px color-mix(in srgb, var(--module-hover) 22%, transparent) !important;
}

.cba-theme-light .cba-drawer .cba-menu-node-button.has-selection {
	color: color-mix(in srgb, var(--module-hover) 55%, #223248) !important;
	background:
		linear-gradient(
			90deg,
			color-mix(in srgb, var(--module-hover) 24%, #ffffff),
			color-mix(in srgb, var(--module) 38%, #ffffff)
		) !important;
	box-shadow:
		inset 4px 0 0 color-mix(in srgb, var(--module-hover) 62%, transparent),
		0 4px 13px color-mix(in srgb, var(--module-hover) 12%, transparent) !important;
}

.cba-theme-light .cba-drawer .cba-menu-node-button.root.has-selection {
	background:
		linear-gradient(
			90deg,
			color-mix(in srgb, var(--module-hover) 28%, #ffffff),
			color-mix(in srgb, var(--module) 76%, #ffffff)
		) !important;
}

.cba-theme-light .cba-drawer .cba-real-menu-home {
	color: #405167 !important;
	background:
		linear-gradient(
			90deg,
			#f6f9fd,
			#eaf1fa
		) !important;
}

.cba-theme-light .cba-drawer .cba-real-menu-home:hover,
.cba-theme-light .cba-drawer .cba-real-menu-home.selected {
	color: #ffffff !important;
	background:
		linear-gradient(
			90deg,
			#4f8dff,
			#3d6fbd
		) !important;
}

.cba-theme-light .cba-page-title-card {
	box-shadow: 0 9px 24px rgba(45, 62, 84, .11) !important;
}

.cba-theme-light .cba-partidas-balance-shell .cba-balance-card {
	box-shadow: 0 8px 20px rgba(45, 62, 84, .10) !important;
}

.cba-theme-light .cba-pdf-overlay {
	background: rgba(223, 230, 239, .91);
}

.cba-theme-light .cba-pdf-shell {
	border-color: #c7d3e1;
	background: #f7f9fc;
	box-shadow: 0 28px 80px rgba(42, 58, 78, .25);
}

.cba-theme-light .cba-pdf-toolbar {
	border-bottom-color: #d7e0eb;
	background: linear-gradient(90deg, #f9fbfe, #eef3f9);
}

.cba-theme-light .cba-pdf-title strong {
	color: #26394f;
}

.cba-theme-light .cba-pdf-title span {
	color: #64758a;
}

.cba-theme-light .cba-pdf-close {
	border-color: #c0ccda;
	color: #34485f;
	background: #eaf0f7;
}

.cba-theme-light .cba-pdf-close:hover,
.cba-theme-light .cba-pdf-close:focus-visible {
	border-color: #94a8bf;
	background: #dce7f2;
}

.cba-theme-light .cba-pdf-loading {
	color: #34485f;
	background: #f7f9fc;
}


/* 008A11 · OP */
.cba-op-header-fields {
	grid-template-columns: minmax(150px, .65fr) minmax(170px, .75fr) minmax(260px, 1.35fr) minmax(190px, .8fr);
}

.cba-op-header-fields .cba-op-concept {
	grid-column: 1 / -1;
	min-width: 0;
	max-width: 100%;
	width: 100%;
}

.cba-op-type,
.cba-op-status,
.cba-oc-state {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 24px;
	padding: 2px 9px;
	border-radius: 999px;
	font-size: .72rem;
	font-weight: 800;
	letter-spacing: .025em;
	white-space: nowrap;
}

.cba-op-type.normal { background: rgba(84,184,255,.14); color: #1973a8; border: 1px solid rgba(84,184,255,.34); }
.cba-op-type.direct { background: rgba(151,117,250,.14); color: #7450c9; border: 1px solid rgba(151,117,250,.34); }
.cba-op-status.annulled { background: rgba(255,102,125,.13); color: #a82d43; border: 1px solid rgba(255,102,125,.35); }
.cba-oc-state.pending { background: rgba(255,102,125,.10); color: #a33b4c; border: 1px solid rgba(255,102,125,.28); }
.cba-oc-state.partial { background: rgba(244,201,93,.15); color: #8d6b0b; border: 1px solid rgba(244,201,93,.38); }
.cba-oc-state.paid { background: rgba(54,211,153,.13); color: #187954; border: 1px solid rgba(54,211,153,.34); }
.cba-op-paid { color: #187954; font-weight: 800; }

@media (max-width: 1180px) {
	.cba-op-header-fields {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (max-width: 700px) {
	.cba-op-header-fields {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* 008A15c · el indicador activo del acordeón se recorta dentro de la curva.
	 Se elimina la vieja barra inset que llegaba hasta los extremos redondeados. */
.cba-theme-light .cba-drawer .cba-menu-node-button:hover,
.cba-theme-light .cba-drawer .cba-menu-node-button.selected,
.cba-theme-light .cba-drawer .cba-menu-node-button.has-selection {
	box-shadow: 0 4px 14px color-mix(in srgb, var(--module-hover) 12%, transparent) !important;
}

.cba-theme-light .cba-drawer .cba-menu-node-button.root,
.cba-theme-light .cba-drawer .cba-menu-node-button.root.has-selection {
	color: color-mix(in srgb, var(--module-hover) 42%, #172033) !important;
}

.cba-theme-light .cba-drawer .cba-menu-node-button.root.selected {
	color: #ffffff !important;
}

/* 008A18p · jerarquía visual del acordeón cuando la selección es un nieto.
   Nieto: fuerte (selected). Padre: intermedio. Abuelo: todavía más suave. */
.cba-theme-light .cba-drawer .cba-menu-node-button.has-selection.ancestor-1 {
  background:
    linear-gradient(
      90deg,
      color-mix(in srgb, var(--module-hover) 24%, #ffffff),
      color-mix(in srgb, var(--module) 16%, #ffffff)
    ) !important;
}

.cba-theme-light .cba-drawer .cba-menu-node-button.has-selection.ancestor-2,
.cba-theme-light .cba-drawer .cba-menu-node-button.root.has-selection.ancestor-2 {
  background:
    linear-gradient(
      90deg,
      color-mix(in srgb, var(--module-hover) 13%, #ffffff),
      color-mix(in srgb, var(--module) 7%, #ffffff)
    ) !important;
}
