/**
 * Barra superior + utilidades de menú.
 * Layout principal (fondo gris, ancho fluido, móvil): style.css — patrón v2.
 */
:root {
	--nav-top-height: 50px;
	--nav-top-gap: 0;
	--layout-pad-x: 20px;
	--layout-pad-y: 10px;
	--layout-section-gap: 10px;
	--nav-top-offset: 68px;
	--layout-main-pad-top: 68px;
	--nav-top-icon: 20px;
	--sidebar-width-expanded: 230px;
	--sidebar-width-collapsed: 70px;
	--sidebar-duration: 0.35s;
	--sidebar-ease: cubic-bezier(0.4, 0, 0.2, 1);
}

/* ========== Cabezote fijo al hacer scroll (como v2) ========== */
.main_container > .top_nav {
	position: fixed !important;
	top: 0 !important;
	right: 0 !important;
	margin-left: 0 !important;
	z-index: 10020 !important;
	background: #ffffff !important;
	box-shadow: 0 1px 4px rgba(15, 23, 42, 0.06);
	transition: left 0.18s cubic-bezier(0.4, 0, 0.2, 1);
}

.main_container > .top_nav .nav_menu {
	margin-bottom: 0 !important;
}

.nav-md .main_container > .top_nav {
	left: var(--sidebar-width-expanded) !important;
}

.nav-sm .main_container > .top_nav {
	left: var(--sidebar-width-collapsed) !important;
}

/* Layout principal: definido en style.css (patrón v2) */

/* Primera card / panel: sin margen extra que comprima el “cuello” */
.main_container > .right_col > .x_panel:first-child,
.main_container > .right_col > .row:first-child > .x_panel:first-child {
	margin-top: 0 !important;
}

/* Separación vertical entre paneles y filas de cards */
.main_container > .right_col .x_panel + .x_panel,
.main_container > .right_col .row + .row {
	margin-top: var(--layout-section-gap);
}

.main_container > .right_col .x_panel .x_content {
	padding-top: 4px;
}

.nav_menu {
	margin-bottom: 0 !important;
	height: var(--nav-top-height) !important;
	min-height: var(--nav-top-height) !important;
	box-sizing: border-box !important;
	background: #ffffff !important;
	border-bottom: 1px solid #e8ecf1 !important;
}

.nav_menu nav {
	display: flex !important;
	align-items: stretch !important;
	flex-wrap: nowrap !important;
	height: 100% !important;
	min-height: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}

.top_nav .nav.toggle,
.top_nav .nav-asistente-toggle {
	float: none !important;
}

/* Anular Gentelella (.toggle a { padding: 15px 15px 0 }) que desalinea el SVG */
.top_nav .nav_menu .nav.toggle {
	display: flex !important;
	align-items: stretch !important;
	justify-content: center !important;
	align-self: stretch !important;
	margin: 0 !important;
	padding: 0 !important;
}

.top_nav .nav_menu .nav.toggle > a,
.top_nav .nav_menu .toggle a#menu_toggle {
	margin: 0 !important;
	padding: 0 !important;
	width: var(--nav-top-height) !important;
	min-width: var(--nav-top-height) !important;
	height: 100% !important;
	min-height: 100% !important;
	align-self: stretch !important;
}

.top_nav .navbar-nav.navbar-right {
	float: none !important;
	width: auto !important;
	margin-left: auto !important;
	display: flex !important;
	align-items: stretch !important;
	align-self: stretch !important;
	flex-wrap: nowrap !important;
	height: 100% !important;
	line-height: 1 !important;
}

/* Enlaces del cabezote: ocupan todo el alto de la barra (hover sin franjas) */
.top_nav .nav-asistente-toggle {
	align-self: stretch !important;
}

.top_nav .nav.toggle > a,
.top_nav .nav-asistente-toggle,
.top_nav .navbar-nav > li > a {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex-wrap: nowrap !important;
	gap: 6px !important;
	height: 100% !important;
	min-height: 100% !important;
	padding: 0 12px !important;
	line-height: 1 !important;
	box-sizing: border-box !important;
}

.top_nav .nav-asistente-toggle {
	color: #5e6974 !important;
	text-decoration: none !important;
	font-size: 12px !important;
	font-weight: 500 !important;
}

/* Hover unificado: mismo gris que Gentelella, de borde a borde de la barra */
.top_nav .nav_menu .nav.toggle > a:hover,
.top_nav .nav_menu .nav.toggle > a:focus,
.top_nav .nav-asistente-toggle:hover,
.top_nav .nav-asistente-toggle:focus,
.top_nav .navbar-nav > li > a:hover,
.top_nav .navbar-nav > li > a:focus {
	color: #2a3f54 !important;
	text-decoration: none !important;
	background: #d9dee4 !important;
}

/* Iconos: mismo tamaño visual (SVG, Font Awesome) */
.top_nav .nav-menu-icon-hamburger {
	width: var(--nav-top-icon) !important;
	height: var(--nav-top-icon) !important;
	flex-shrink: 0 !important;
	display: block !important;
	margin: 0 !important;
	vertical-align: middle !important;
}

.top_nav .nav.toggle > a i,
.top_nav .nav-asistente-toggle i,
.top_nav .navbar-nav > li > a i,
.top_nav li a i {
	font-size: var(--nav-top-icon) !important;
	line-height: 1 !important;
	width: 1em !important;
	text-align: center !important;
	vertical-align: middle !important;
}

.top_nav .navbar-right > li {
	display: inline-flex !important;
	align-items: stretch !important;
	align-self: stretch !important;
	height: auto !important;
	line-height: 1 !important;
	vertical-align: middle !important;
}

.top_nav .navbar-right > li > a {
	height: 100% !important;
	min-height: 100% !important;
}

/* Perfil de usuario */
.top_nav .navbar-nav > li > a.user-profile {
	color: #5e6974 !important;
}

.top_nav .navbar-nav > li > a.user-profile img.img-circle,
.top_nav .navbar-nav > li > a.user-profile img.nav-top-avatar {
	width: var(--nav-top-icon) !important;
	height: var(--nav-top-icon) !important;
	flex-shrink: 0 !important;
	margin-right: 0 !important;
	object-fit: cover !important;
	background-color: #fff !important;
	padding: 1px !important;
	box-sizing: border-box !important;
}

.top_nav .navbar-nav > li > a.user-profile .user-name {
	line-height: 1.2 !important;
	font-size: 12px !important;
	white-space: nowrap !important;
}

.top_nav .navbar-nav > li > a.user-profile .fa-angle-down {
	margin-left: 2px !important;
	font-size: 14px !important;
	width: auto !important;
}

/* Campana: badge respecto al icono centrado */
.top_nav .info-number {
	position: relative !important;
}

.top_nav .info-number .badge {
	top: 10px !important;
	right: 6px !important;
}

/* Menú perfil: debajo del toggle, alineado a la derecha del botón (no desplazado al borde de pantalla) */
.top_nav .navbar-nav.navbar-right > li.nav-user-dropdown {
	position: relative !important;
}

.top_nav .navbar-nav.navbar-right > li.nav-user-dropdown > .dropdown-menu.nav-user-menu {
	position: absolute !important;
	top: 100% !important;
	right: 0 !important;
	left: auto !important;
	float: none !important;
	margin: 4px 0 0 0 !important;
	padding: 0 !important;
	min-width: 280px;
	max-width: 300px;
	border: none;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: 0 8px 24px rgba(15, 23, 42, 0.18);
	transform: none !important;
}

.top_nav .navbar-nav.navbar-right > li.nav-user-dropdown > .dropdown-menu.nav-user-menu > li {
	float: none;
	width: 100%;
}

/* ========== Móvil: cabezote + menú lateral tipo drawer ========== */
@media (max-width: 991px) {
	.top_nav .navbar-nav.navbar-right {
		width: auto !important;
		float: none !important;
		flex: 0 1 auto !important;
		min-width: 0 !important;
		max-width: 55%;
	}

	.top_nav .navbar-right > li {
		position: relative !important;
		float: none !important;
		flex-shrink: 0;
	}

	.top_nav .nav-asistente-toggle {
		padding: 0 8px !important;
	}

	.top_nav .nav-asistente-toggle .hidden-xs {
		display: none !important;
	}

	.top_nav .navbar-nav > li > a.user-profile {
		padding: 0 8px !important;
		max-width: 120px;
	}

	.top_nav .navbar-nav > li > a.user-profile .user-name {
		max-width: 64px;
		overflow: hidden;
		text-overflow: ellipsis;
		display: inline-block;
		vertical-align: middle;
	}

	.top_nav .navbar-nav > li > a.user-profile .fa-angle-down {
		display: none;
	}

	.top_nav .navbar-nav.navbar-right > li.nav-user-dropdown > .dropdown-menu.nav-user-menu {
		min-width: min(280px, calc(100vw - 12px));
		max-width: calc(100vw - 12px);
	}

	/* Anular franja nav-sm de 70px en móvil */
	.nav-sm .main_container > .top_nav,
	.nav-md .main_container > .top_nav {
		left: 0 !important;
		width: auto !important;
	}

	.nav-sm .container.body .right_col,
	.nav-md .container.body .right_col {
		margin-left: 0 !important;
		width: 100% !important;
	}

	#menu-notificaciones {
		width: min(320px, calc(100vw - 16px)) !important;
		right: 0;
		left: auto;
	}
}
