/**
 * 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 .navbar-nav > li.nav-pos-item {
	display: flex !important;
	align-items: stretch !important;
	align-self: stretch !important;
}

.top_nav .nav.toggle > a,
.top_nav .nav-asistente-toggle,
.top_nav .nav-pos-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,
.top_nav .nav-pos-toggle {
	color: #5e6974 !important;
	text-decoration: none !important;
	font-size: 12px !important;
	font-weight: 500 !important;
}

.top_nav .nav-pos-toggle {
	font-weight: 600 !important;
	color: #4f46e5 !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 .nav-pos-toggle:hover,
.top_nav .nav-pos-toggle:focus {
	color: #4338ca !important;
}
.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 .nav-pos-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 .nav-top-user-icon {
	font-size: calc(var(--nav-top-icon) + 4px) !important;
	line-height: 1 !important;
	width: 1em !important;
	flex-shrink: 0 !important;
	color: #5e6974 !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%;
}

/* ========== Notificaciones ========== */
.top_nav .navbar-nav.navbar-right > li.nav-notif-dropdown {
	position: relative !important;
}

.top_nav .nav-notif-toggle {
	border-radius: 8px;
	transition: background-color 0.2s ease, color 0.2s ease;
}

.top_nav .nav-notif-toggle:hover,
.top_nav .nav-notif-dropdown.open > .nav-notif-toggle {
	background-color: #f1f5f9 !important;
	color: #1e3a8a !important;
}

.top_nav .navbar-nav.navbar-right > li.nav-notif-dropdown > .dropdown-menu.nav-notif-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;
	width: 340px !important;
	max-width: calc(100vw - 16px);
	max-height: 420px;
	border: none !important;
	border-radius: 12px !important;
	overflow: hidden;
	box-shadow: 0 12px 32px rgba(15, 23, 42, 0.14), 0 2px 8px rgba(15, 23, 42, 0.06) !important;
	transform: none !important;
	display: none;
	flex-direction: column;
}

.top_nav .navbar-nav.navbar-right > li.nav-notif-dropdown.open > .dropdown-menu.nav-notif-menu {
	display: flex !important;
}

.top_nav .nav-notif-menu > li {
	float: none;
	width: 100%;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
}

.top_nav .nav-notif-header {
	padding: 14px 16px 12px;
	background: linear-gradient(135deg, #1e3a8a 0%, #2563eb 100%);
	border-bottom: none;
	flex-shrink: 0;
}

.top_nav .nav-notif-header-title {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 14px;
	font-weight: 600;
	color: #fff;
	letter-spacing: 0.01em;
}

.top_nav .nav-notif-header-title .fa {
	font-size: 15px;
	opacity: 0.9;
}

.top_nav .nav-notif-body {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	background: #fff;
}

.top_nav .nav-notif-state {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	padding: 28px 20px;
	text-align: center;
	color: #94a3b8;
	font-size: 13px;
}

.top_nav .nav-notif-state .fa {
	font-size: 28px;
	color: #cbd5e1;
}

.top_nav .nav-notif-empty .fa-check-circle-o {
	color: #86efac;
}

.top_nav .nav-notif-loading .fa-spinner {
	color: #3b82f6;
	font-size: 22px;
}

.top_nav .nav-notif-error {
	color: #ef4444;
}

.top_nav .nav-notif-error .fa {
	color: #fca5a5;
}

.top_nav .nav-notif-items {
	margin: 0;
	padding: 6px 0;
}

.top_nav .nav-notif-item {
	margin: 0 !important;
	padding: 0 !important;
	width: 100% !important;
	background: transparent !important;
	display: block !important;
	border-bottom: 1px solid #f1f5f9;
}

.top_nav .nav-notif-item:last-child {
	border-bottom: none;
}

.top_nav .nav-notif-item-link {
	display: flex !important;
	align-items: flex-start;
	gap: 12px;
	padding: 12px 16px !important;
	width: 100%;
	text-decoration: none !important;
	color: #334155 !important;
	transition: background-color 0.15s ease;
	line-height: 1.4 !important;
}

.top_nav .nav-notif-item-link:hover {
	background-color: #f8fafc !important;
	color: #1e293b !important;
}

.top_nav .nav-notif-item-icon {
	flex-shrink: 0;
	width: 36px;
	height: 36px;
	border-radius: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 15px;
}

.top_nav .nav-notif-priority--alta .nav-notif-item-icon {
	background: #fef2f2;
	color: #dc2626;
}

.top_nav .nav-notif-priority--media .nav-notif-item-icon {
	background: #fffbeb;
	color: #d97706;
}

.top_nav .nav-notif-priority--baja .nav-notif-item-icon {
	background: #eff6ff;
	color: #2563eb;
}

.top_nav .nav-notif-item-content {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.top_nav .nav-notif-item-title {
	font-size: 13px;
	font-weight: 600;
	color: #1e293b;
	line-height: 1.35;
	word-break: break-word;
}

.top_nav .nav-notif-item-time {
	font-size: 11px;
	color: #94a3b8;
	font-weight: 400;
}

.top_nav .nav-notif-footer {
	flex-shrink: 0;
	border-top: 1px solid #f1f5f9;
	background: #fafbfc;
}

.top_nav .nav-notif-view-all {
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 6px;
	padding: 12px 16px !important;
	font-size: 13px;
	font-weight: 600;
	color: #2563eb !important;
	text-decoration: none !important;
	transition: background-color 0.15s ease, color 0.15s ease;
	width: 100%;
	line-height: 1.4 !important;
}

.top_nav .nav-notif-view-all:hover {
	background-color: #eff6ff !important;
	color: #1d4ed8 !important;
}

.top_nav .nav-notif-view-all .fa-angle-right {
	font-size: 16px;
	transition: transform 0.15s ease;
}

.top_nav .nav-notif-view-all:hover .fa-angle-right {
	transform: translateX(2px);
}

/* Anular estilos legacy msg_list dentro del panel nuevo */
.top_nav .nav-notif-menu.msg_list li,
.top_nav .nav-notif-menu li.nav-notif-item {
	background: transparent !important;
	margin: 0 !important;
	width: 100% !important;
}

/* ========== 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,
	.top_nav .nav-pos-toggle {
		padding: 0 8px !important;
	}

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

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

	.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,
	.top_nav .navbar-nav.navbar-right > li.nav-notif-dropdown > .dropdown-menu.nav-notif-menu {
		width: min(340px, calc(100vw - 16px)) !important;
		right: 0;
		left: auto;
	}
}
