/* ==================== */
/* Global Styles */
/* ==================== */

body {
	background-color: #f5f5f5;
}
* {
	font-size: 16px;
}

.input-group:not(.input-group-lg):not(.input-group-sm) .input-group-addon .fa {
}

.input-group .input-group-addon .fa {
	line-height: 100%;
}

.dropdown-menu.dm-icon > li > a > .fa {
	line-height: 100%;
	vertical-align: top;
	width: 28px;
}

/* ==================== */
/* Layout & Structure */
/* ==================== */
/* .app-layout styles moved to sidebar section */

.bg-dark {
	background: #404040 !important;
	border-bottom: none !important;
	box-shadow: none !important;
}

/* ==================== */
/* Header Styles */
/* ==================== */
.main-header {
	position: relative;
	z-index: 1030;
}

.logo-highlight {
	padding: 4px 8px;
	border-radius: 8px;
	max-width: 250px;
	height: auto;
	margin-right: 10px;
}

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

a:hover {
	color: #4a8b71;
}

/* Navigation */
.navbar {
	padding: 0.5rem 1rem;
}

.navbar-nav .nav-link {
	color: rgba(255, 255, 255, 0.85);
	padding: 0.5rem 1rem;
	transition: all 0.2s ease;
}

.navbar-nav .nav-link:hover {
	color: #fff;
	background-color: rgba(255, 255, 255, 0.1);
	border-radius: 4px;
}

/* User Menu */
.user-menu {
	margin-left: auto;
}

.profile {
	width: 40px;
	height: 40px;
	background-color: #dc3545;
	color: white;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: bold;
	font-size: 16px;
	cursor: pointer;
	user-select: none;
}

.user-name {
	margin-left: 0.5rem;
}

/* Dropdown Menu */
.dropdown-menu {
	border: 1px solid rgba(0, 0, 0, 0.15);
	box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
	min-width: 200px;
}

.dropdown-item {
	padding: 0.5rem 1.5rem;
	color: #212529;
	transition: all 0.2s ease;
}

.dropdown-item:hover {
	background-color: #f8f9fa;
	color: #16181b;
}

/* Responsive Styles */
@media (max-width: 991.98px) {
	.navbar-collapse {
		background-color: #343a40;
		padding: 1rem;
		margin-top: 0.5rem;
		border-radius: 0.25rem;
	}

	.navbar-nav {
		margin-bottom: 1rem;
	}

	.user-menu {
		padding-top: 1rem;
		border-top: 1px solid rgba(255, 255, 255, 0.1);
	}
}

/* ==================== */
/* Cards & Containers */
/* ==================== */
.card-option {
	background-color: white;
	border-radius: 1rem;
}

/* ==================== */
/* Forms & Inputs */
/* ==================== */
.file-upload-wrapper {
	margin-bottom: 1rem;
}

/* ==================== */
/* Navigation & Menus */
/* ==================== */
.sortable {
	cursor: pointer;
	position: relative;
}

/* ==================== */
/* Login & Auth Pages */
/* ==================== */
.login-content {
	background-color: #f5f5f5;
	min-height: 100vh;
}

/* ==================== */
/* Movie & Film Pages */
/* ==================== */
.movie-page {
	margin: 0;
	background-color: black;
}

.menu-section-title > span {
	font-size: 12px;
	text-align: center;
	width: 100%;
	display: inline-block;
	border-top: 1px solid #ddd;
	padding-top: 11px;
	color: #FFF;
}

.mbody.devise-page {
	/* Your login page specific styles */
}

/* Footer Styles */
.footer-container {
	background-color: #1a1a1a;
	color: #ffffff;
	padding: 30px 0;
	width: 100%;
	z-index: 9999;
}

.footer-container-inv {
	background-color: #ffffff;
	color: #000000;
	border-top: 1px solid #dddddd45;
	position: relative;
	padding: 15px 0;
	padding-left: var(--sidebar-width-compact);
	width: 100%;
	z-index: 1050;
	transition: padding-left var(--sidebar-transition);
}

/* Ajustar padding del footer cuando sidebar está expandido */
html.sidebar-pinned .footer-container-inv,
body:has(.sidebar-container.expanded.pinned) .footer-container-inv {
	padding-left: var(--sidebar-width-expanded);
}

.footer-content {
	max-width: 100%;
	margin: 0 auto;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	flex-wrap: wrap;
	padding: 0 20px;
}

.footer-left {
	display: flex;
	align-items: center;
	flex: 1;
	min-width: 300px;
}

.footer-logo {
	margin-right: 30px;
}

.footer-logo-img {
	max-width: 120px;
	height: auto;
}

.footer-address p {
	margin: 5px 0;
	font-size: 14px;
	line-height: 1.5;
	color: #b3b3b3;
}

.footer-right {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	justify-content: flex-end;
	flex: 1;
	min-width: 300px;
}

.footer-links {
	display: flex;
	align-items: center;
}

.footer-link {
	text-decoration: none;
	font-size: 14px;
	margin: 0 10px;
	transition: color 0.3s ease;
}

/* Normal (non-devise) footer links are dark */
.footer-container-inv .footer-link {
	color: #333 !important;
}

.footer-container-inv .footer-link:hover {
	color: #5B9E85 !important;
}

/* Devise footer links stay white */
.footer-container .footer-link {
	color: #fff !important;
}

.footer-link:hover {
	color: #ffffff;
	text-decoration: underline;
}

.footer-separator {
	color: #4d4d4d;
	font-size: 16px;
}

.footer-copyright p {
	margin: 0;
	font-size: 14px;
	color: #808080;
}

/* Responsive styles */
@media (max-width: 768px) {
	.footer-content {
		flex-direction: column;
		align-items: center;
		text-align: center;
	}

	.footer-left, .footer-right {
		align-items: center;
		text-align: center;
	}

	.footer-links {
		margin-bottom: 15px;
	}
}

/* ==================== */
/* Status Badges */
/* ==================== */
.status-badges .status-badge {
	padding: 6px 14px;
	border-radius: 25px;
}

/* ==================== */
/* Buttons */
/* ==================== */
.btn-custom-secundary {
	background-color: #DDF4EB;
	border-radius: 8px;
}

/* ==================== */
/* Help & Documentation */
/* ==================== */
.placeholder-image {
	background-color: #f8f9fa;
	border: 1px dashed #dee2e6;
}

/* ==================== */
/* Responsive Adjustments */
/* ==================== */
@media (max-width: 767px) {
	.app-layout {
		margin-left: 0;
		padding-top: 60px;
	}

	.ms-menu {
		height: calc(100% - 58px) !important;
		transform: translate3d(-240px, 58px, 0) !important;
		opacity: 0 !important;
		filter: alpha(opacity=0) !important;
		z-index: 1 !important;
	}
}
.sub-menu i.fa {
	width:20px;
	padding-right: 10px;
}
.sub-menu ul li.active a {
	color: #000000 !important;
}
.btn-icon .fa {
}
.card-body.filme a {
	color: rgb(94, 94, 94);
}

.logo {
	display: flex;
	align-items: center;
}
.logo img {
	height: 50px;
}
.search-bar {
	max-width: 500px;
	flex-grow: 1;
	margin: 0 20px;
}
.search-bar input {
	width: 100%;
	padding: 8px !important;
	border-radius: 10px;
	border: 1px solid #ccc;
}
.icons {
	display: flex;
	align-items: center;
	gap: 15px;
}
.icon-btn {
	background: transparent;
	border: none;
	cursor: pointer;
}
.icon-btn img {
	height: 24px;
}
.profile {
	width: 40px;
	height: 40px;
	background-color: #343a40;
	color: white;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	font-weight: bold;
}
.profile {
	display: flex;
	align-items: center;
	margin-bottom: 20px;
}
.profile img {
	width: 50px;
	height: 50px;
	border-radius: 50%;
	margin-right: 10px;
}
.profile h3 {
	margin: 0;
}
.profile p {
	margin: 0;
	color: #666;
}
nav ul {
	list-style: none;
	padding: 0;
}
.dropdown .submenu {
	display: none;
	list-style: none;
	padding-left: 20px;
}
.dropdown:hover .submenu {
	display: block;
}
.badge {
	background: red;
	color: white;
	padding: 2px 6px;
	border-radius: 12px;
	margin-left: auto;
}

.content {
	padding: 20px;
}
.search-bar {
	max-width: 500px;
}
.accordion-button {
	border-radius: 10px;
}
.nav-link {
	border-radius: 10px;
	padding: 10px;
	transition: background 0.3s ease;
}
.nav-link:hover {
	color: #b5b5b5 !important;
}
label{
	font-weight:normal;
}
.custom-inline-group {
	/* Bootstrap ya tiene gap con clases como gap-3, pero si necesitas personalizar */
	min-height: 40px; /* Altura mínima para mejor alineación */
}

.custom-btn-icon {
	transition: transform 0.2s; /* Efecto hover solo para el botón */
	background: transparent;
	border: none;
	cursor: pointer;
	width: 36px;
}

.custom-btn-icon > img {
	width: 36px;
}

.custom-btn-icon:hover {
	transform: translateY(-1px);
}

.custom-img-responsive {
	max-width: 32px; /* Tamaño personalizado para la imagen */
	height: auto;
}
.user-info-card {
	font-family: 'Arial', sans-serif;
	line-height: 1.2;
}

.user-name {
	font-weight: 600;
	color: #2c3e50;
}

.user-role {
	color: #7f8c8d;
	letter-spacing: 0.5px;
}
.custom-sidebar {
	width: 280px;
	background: #f8f9fa;
	height: 100vh;
	position: fixed;
	left: 0;
	top: 0;
}

.custom-user-section {
	padding: 1.5rem;
	border-bottom: 1px solid #dee2e6;
}

.custom-menu-title {
	font-weight: 600;
	color: #6c757d;
	letter-spacing: 0.5px;
	padding: 1rem 1.5rem 0.5rem;
}


.badge{
	background-color: #DDF4EB !important;
	color: #000;
	font-weight: 300;
}
.clean-link {
	text-decoration: none;
	color: inherit;
}

.clean-link:hover,
.clean-link:visited,
.clean-link:active {
	text-decoration: none;
	color: inherit;
}
.clientes-container {
	padding: 20px;
}
.filter-box {
	background: #f8f9fa;
	padding: 15px 0px;
	border-radius: 10px;
	margin-bottom: 20px;
}
.filter-box button {
	background: none;
	border: none;
	color: red;
}
.status-active {
	background: #d1f7c4;
	color: #2c7a24;
	padding: 5px 10px;
	border-radius: 15px;
	font-weight: bold;
}
.action-btn {
	border: none;
	padding: 5px 8px;
	border-radius: 50%;
	color: white;
	margin-right: 5px;
}
.btn-edit { background: #20c997; } /* Verde */
.btn-assign { background: #f39c12; } /* Naranja */
.btn-delete { background: #e74c3c; } /* Rojo */

.filter-container {
	background: #fff;
	border-radius: 10px;
	padding: 10px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	border: 1px solid #ddd;
	width: 100%;
	max-width: 800px;
}

.filter-item {
	flex-grow: 1;
	text-align: center;
	border-right: 1px solid #ddd;
	padding: 10px;
}

.filter-item:last-child {
	border-right: none;
}

.filter-item select {
	border: none;
	background: none;
	width: 100%;
	text-align: center;
	cursor: pointer;
}

.filter-icon {
	color: #333;
}

.reset-filter {
	color: red;
	font-weight: bold;
	text-decoration: none;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 5px;
}

.reset-filter:hover {
	text-decoration: underline;
}
.table-container {
	margin: auto;
	background: #ffffff;
	padding: 20px;
	border-radius: 10px;
	box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1);
}

.table thead {
	background: #f8f9fa;
}

.badge-status {
	background-color: #d1f2eb;
	color: #17a589;
	font-weight: bold;
	padding: 5px 10px;
	border-radius: 10px;
}
.badge-danger {
	background-color: #fcd7d4;
	color: #ef3825;
	font-weight: bold;
	padding: 5px 10px;
	border-radius: 10px;
}
.badge-role {
	background-color: #5b9e85;
	color: #ffffff;
	font-weight: bold;
	padding: 3px 8px !important;
	border-radius: 8px;
	font-size: 0.75rem;
	white-space: nowrap;
	display: inline-block;
}


/* Stat Cards para resúmenes */
.stat-card {
	background: #fff;
	border: 1px solid #ABABAB;
	border-radius: 15px;
	padding: 20px;
	text-align: center;
}

.stat-card .stat-number {
	font-size: 2rem;
	font-weight: bold;
	margin-bottom: 5px;
}

.stat-card .stat-label {
	color: #6c757d;
	margin: 0;
}

.stat-card.stat-pendiente .stat-number { color: #0c5460; }
.stat-card.stat-aprobado .stat-number { color: #155724; }
.stat-card.stat-rechazado .stat-number { color: #721c24; }

/* Document tabs styling */
.document-tabs {
	border-bottom: 1px solid #dee2e6;
	padding: 15px 15px 0;
	background: #fafafa;
	border-radius: 15px 15px 0 0;
}

.document-tabs .nav-link {
	color: #495057;
	border: none;
	padding: 10px 20px;
	margin-right: 5px;
	border-radius: 8px 8px 0 0;
}

.document-tabs .nav-link:hover {
	background-color: #e9ecef;
}

.document-tabs .nav-link.active {
	background-color: #fff;
	color: #5B9E85;
	font-weight: 500;
	border: 1px solid #dee2e6;
	border-bottom: none;
	margin-bottom: -1px;
}

.document-tabs .badge {
	font-size: 0.75rem;
	padding: 3px 8px;
	min-width: auto !important;
}

/* Document panel headers */
.document-panel-header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 15px;
	border-bottom: 1px solid #dee2e6;
	border-radius: 15px 15px 0 0;
}

.document-panel-header.rejected {
	background-color: #f8d7da;
}

.document-panel-header.rejected h5 {
	color: #721c24;
	margin: 0;
}

.icon-btn {
	border: none;
	background: none;
	cursor: pointer;
	padding: 5px;
}

.icon-view {
	color: #5B9E85;
}

.icon-edit {
	color: #F2B15E;
}

.icon-users {
	color: #fd7e14;
}

.icon-delete {
	color: #dc3545;
}
.table > thead > tr > th{
	font-weight: bolder;
}
.table > thead > tr > th{
	font-weight: bolder;
	border-width: 0px;
}

.logo {
	display: flex;
	align-items: center;
}
.logo img {
	height: 50px;
}
.search-bar {
	max-width: 500px;
	flex-grow: 1;
	margin: 0 20px;
}
.search-bar input {
	width: 100%;
	padding: 8px !important;
	border-radius: 10px;
	border: 1px solid #ccc;
}
.icons {
	display: flex;
	align-items: center;
	gap: 15px;
}
.icon-btn {
	background: transparent;
	border: none;
	cursor: pointer;
}
.icon-btn img {
	height: 24px;
}
.profile {
	width: 40px;
	height: 40px;
	background-color: #343a40;
	color: white;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	font-weight: bold;
}

.profile {
	display: flex;
	align-items: center;
	margin-bottom: 20px;
}
.profile img {
	width: 50px;
	height: 50px;
	border-radius: 50%;
	margin-right: 10px;
}
.profile h3 {
	margin: 0;
}
.profile p {
	margin: 0;
	color: #666;
}
nav ul {
	list-style: none;
	padding: 0;
}
nav ul li {
	padding: 2px 0;
}
nav ul li a {
	text-decoration: none;
	color: #333;
	display: flex;
	align-items: center;
}
.dropdown .submenu {
	display: none;
	list-style: none;
	padding-left: 20px;
}
.dropdown:hover .submenu {
	display: block;
}
.badge {
	background: red;
	color: white;
	padding: 2px 6px;
	border-radius: 12px;
	margin-left: auto;
}
@media (max-width: 768px) {
	.sidebar {
		transform: translateX(-100%);
	}
}

.sidebar {
	width: 250px;
	background: #f8f9fa;
	padding: 20px;
	height: 100%;
	position: absolute;
	left: 0;
	overflow-y: auto;
	transition: transform 0.3s ease;
	/*height: 100vh;*/
	background-color: white;
	padding: 20px;
	border-radius: 0px 15px;
	box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.1);
}

.content {
	padding: 20px;
}
.search-bar {
	max-width: 500px;
}
.accordion-button {
	border-radius: 10px;
}
.nav-link {
	border-radius: 10px;
	padding: 10px;
	transition: background 0.3s ease;
}
label{
	font-weight:normal;
}
.custom-inline-group {
	/* Bootstrap ya tiene gap con clases como gap-3, pero si necesitas personalizar */
	min-height: 40px; /* Altura mínima para mejor alineación */
}

.custom-btn-icon {
	transition: transform 0.2s; /* Efecto hover solo para el botón */
	background: transparent;
	border: none;
	cursor: pointer;
	width: 36px;
}

.custom-btn-icon > img {
	width: 36px;
}

.custom-btn-icon:hover {
	transform: translateY(-1px);
}

.custom-img-responsive {
	max-width: 32px; /* Tamaño personalizado para la imagen */
	height: auto;
}
.user-info-card {
	font-family: 'Arial', sans-serif;
	line-height: 1.2;
}

.user-name {
	font-weight: 600;
	color: #2c3e50;
}

.user-role {
	color: #7f8c8d;
	letter-spacing: 0.5px;
}
.custom-sidebar {
	width: 280px;
	background: #f8f9fa;
	height: 100vh;
	position: fixed;
	left: 0;
	top: 0;
}
.custom-user-section {
	padding: 1.5rem;
	border-bottom: 1px solid #dee2e6;
}
.custom-menu-title {
	font-weight: 600;
	color: #6c757d;
	letter-spacing: 0.5px;
	padding: 1rem 1.5rem 0.5rem;
}
.custom-menu-item {
	padding: 0.5rem 1.5rem;
	color: #212529;
	border: none;
	background: transparent;
	width: 100%;
	text-align: left;
}
.custom-submenu-item {
	padding: 0.35rem 1.5rem 0.35rem 2.5rem;
	color: #6c757d;
}
.custom-menu-item:hover,
.custom-submenu-item:hover {
	background-color: #e9ecef;
	color: #5B9E85;
}
.badge{
	background-color: #DDF4EB !important;
	color: #000;
	font-weight: 300;
}
.clean-link {
	text-decoration: none;
	color: inherit;
}
.clean-link:hover,
.clean-link:visited,
.clean-link:active {
	text-decoration: none;
	color: inherit;
}
.btn-custom-danger {
	background-color: #5B9E85 !important;
	color: white !important;
	border: solid 1px !important;
	border-radius: 8px !important;
	padding: 8px !important;
	font-weight: bold !important;
	border-color: #5B9E85 !important;
}

.btn-custom-danger:hover {
	background-color: #5B9E85 !important;
}

.btn-custom-cancel {
	background-color: #ea7a60 !important;
	color: white !important;
	border: solid 1px !important;
	border-radius: 8px !important;
	padding: 8px !important;
	font-weight: bold !important;
	border-color: #c0130c !important;
}

.pagy.nav {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 8px; /* Espacio entre los elementos */
	padding: 10px;
	/*background-color: #f8f9fa;
	border-radius: 8px;
	box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); */
}

.pagy.nav a {
	text-decoration: none;
	color: #CCC; /* Azul típico de Bootstrap */
	padding: 6px 12px;
	border: 1px solid #dee2e6;
	border-radius: 5px;
	transition: all 0.2s ease-in-out;
}

.pagy.nav a:hover {
	background-color: #DDF4EB;
	color: #fff;
}

.pagy.nav a[aria-current="page"] {
	background-color: #DDF4EB;
	color: #fff;
	cursor: default;
}

.pagy.nav a[aria-disabled="true"] {
	color: #6c757d;
	border-color: #dee2e6;
	background-color: #e9ecef;
	cursor: not-allowed;
}

.pagy.nav a[aria-disabled="true"]:hover {
	background-color: #e9ecef;
	color: #6c757d;
}

footer.text-center {
	padding: 10px;
}

.custom-table {
	border-collapse: separate;
	border-spacing: 0;
	border-radius: 8px;
	overflow: hidden;
	background: white;
	box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.1);
}

.custom-table thead {
	background-color: #f8f9fa;
	font-weight: bold;
	text-align: left;
}

.custom-table th, .custom-table td {
	padding: 12px;
	border-bottom: 1px solid #dee2e6;
}

.custom-table tbody tr:last-child td {
	border-bottom: none;
}

.custom-table input[type="checkbox"] {
	width: 18px;
	height: 18px;
	accent-color: black;
	border-radius: 4px;
}

.action-buttons {
	display: flex;
	align-items: center;
	gap: 8px; /* Espacio entre los botones */
}

.btn-action {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	border: none;
	cursor: pointer;
}

.btn-edit {
	background-color: rgba(255, 193, 7, 0.2);
	color: #ffc107;
}

.btn-delete {
	background-color: rgba(220, 53, 69, 0.2);
	color: #dc3545;
}

.btn-action i {
}

.btn-action:hover {
	opacity: 0.8;
}


.logout{
	border: none;
	background-color: transparent;
	padding: 0px;
}
.card-custom {
	border-radius: 1rem;
	box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075);
	padding: 1rem;
	background-color: #ffffff;
}

.icon-container {
	border-radius: 25%;
	width: 48px;
	height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.icon-container.purple {
	background-color: #DDF4EB;
}

.icon-container.purple svg {
	color: #5B9E85;
}

.icon-container.yellow {
	background-color: #fff3d6;
}

.icon-container.yellow svg {
	color: #fec53d;
}

.icon-container.green {
	background-color: #d9f7e8;
}

.icon-container.green svg {
	color: #4ad991;
}

.icon-container.red {
	background-color: #ffded1;
}

.icon-container.red svg {
	color: #ff9871;
}

.growth span, .growth svg, .growth i {
	color: #00b894;
}

.custom-profile-circle {
	width: 36px;
	height: 36px;
	background-color: #dc3545;
	color: #fff;
	font-weight: bold;
	font-size: 18px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	user-select: none;
}

.custom-dropdown-menu {
	position: absolute;
	top: 50px;
	right: 0;
	background-color: #1e1e1e;
	border: 1px solid #444;
	border-radius: 6px;
	min-width: 200px;
	box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
	display: none;
	flex-direction: column;
	z-index: 1000;
	padding: 0.5rem 0;
}

.custom-dropdown-header {
	padding: 10px 16px;
	color: #fff;
	font-size: 14px;
}

.custom-divider {
	height: 1px;
	background-color: #444;
	margin: 4px 0;
}

.custom-dropdown-item {
	display: block;
	padding: 10px 16px;
	color: #fff;
	text-decoration: none;
	font-size: 14px;
	transition: background-color 0.2s;
}

.custom-dropdown-item:hover {
	background-color: #333;
}

@media (max-width: 768px) {
	.logo-highlight {
		padding: 4px 8px;
		border-radius: 8px;
		max-width: 180px;
		height: auto;
		margin-right: 10px;
	}
	li.nav-item {
		padding-left: 15px;
	}
	div#navbarNavMobile {
		background-color: #554d3e;
	}
}

.custom-item {
	position: relative;
	list-style: none;
	margin: 0 1rem;
}

.custom-link {
	color: white;
	text-decoration: none;
	cursor: pointer;
	display: inline-block;
	padding: 0.5rem;
}

.custom-link:hover {
	background: #444;
	border-radius: 5px;
}

/* Submenú */
.custom-submenu {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	background: #fff;
	min-width: 200px;
	border-radius: 5px;
	box-shadow: 0 5px 15px rgba(0,0,0,0.2);
	z-index: 1000;
	padding: 0.5rem 0;
}

.custom-submenu li {
	list-style: none;
}

.custom-submenu a {
	display: block;
	padding: 0.5rem 1rem;
	color: #333;
	text-decoration: none;
}

.custom-submenu a:hover {
	background: #f0f0f0;
}

/* Mostrar cuando esté activo */
.custom-dropdown.active .custom-submenu {
	display: block;
}
/* Layout base */
/* .app-layout styles consolidated in sidebar section below */
/* ============================================ */
/* NUEVO SIDEBAR - Compacto/Expandido          */
/* ============================================ */

/* Variables CSS para el sidebar */
:root {
    --sidebar-width-compact: 64px;
    --sidebar-width-expanded: 240px;
    --sidebar-transition: 0.3s ease;
    --sidebar-gradient: linear-gradient(180deg, #26544b 0%, #ee885f 100%);
    --sidebar-active-bg: #5b9e85;
    --sidebar-hover-bg: rgba(255, 255, 255, 0.15);
    --sidebar-text-color: #ffffff;
    --sidebar-text-muted: rgba(255, 255, 255, 0.7);
}

/* Contenedor principal del sidebar */
.sidebar-container {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    width: var(--sidebar-width-compact);
    background: var(--sidebar-gradient);
    display: flex;
    flex-direction: column;
    z-index: 1040;
    transition: width var(--sidebar-transition), bottom 0.2s ease;
    overflow: hidden;
}

.sidebar-container.expanded {
    width: var(--sidebar-width-expanded);
}

/* Header del sidebar */
.sidebar-header {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 12px 0;
    min-height: 70px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.sidebar-container.expanded .sidebar-header {
    justify-content: space-between;
    padding: 12px 16px;
}

.sidebar-brand-container {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.sidebar-logo-icon {
    width: 42px;
    height: 42px;
    min-width: 42px;
    flex-shrink: 0;
    display: block;
}

.sidebar-container.expanded .sidebar-logo-icon {
    width: 34px;
    height: 34px;
    min-width: 34px;
}

.sidebar-brand-text {
    font-size: 15px;
    font-weight: 600;
    color: var(--sidebar-text-color);
    white-space: nowrap;
    display: none;
}

.sidebar-container.expanded .sidebar-brand-text {
    display: inline;
}

/* Badge de convocatoria seleccionada */
.convocatoria-badge-container {
    padding: 8px 10px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.convocatoria-badge {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: rgba(91, 158, 133, 0.2);
    border: 1px solid rgba(91, 158, 133, 0.4);
    border-radius: 8px;
    padding: 8px 10px;
    text-decoration: none;
    transition: all 0.2s;
    overflow: hidden;
}

.convocatoria-badge:hover {
    background: rgba(91, 158, 133, 0.3);
    border-color: rgba(91, 158, 133, 0.6);
}

.convocatoria-badge i {
    color: #5B9E85;
    font-size: 14px;
    flex-shrink: 0;
}

.convocatoria-badge-text {
    font-size: 11px;
    font-weight: 500;
    color: #fff;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    display: none;
    line-height: 1.2;
}

.sidebar-container.expanded .convocatoria-badge-text {
    display: block;
}

.sidebar-container:not(.expanded) .convocatoria-badge {
    justify-content: center;
    padding: 8px;
}

.sidebar-toggle-btn {
    background: transparent;
    border: none;
    color: var(--sidebar-text-color);
    width: 32px;
    height: 32px;
    border-radius: 4px;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    transition: background 0.2s;
    flex-shrink: 0;
    display: none;
}

.sidebar-container.expanded .sidebar-toggle-btn {
    display: flex;
}

.sidebar-toggle-btn:hover {
    background: var(--sidebar-hover-bg);
}

.sidebar-container.pinned .sidebar-toggle-btn {
    color: #f5a623;
}

/* Navegación principal */
.sidebar-nav {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 8px 0;
}

/* Scrollbar personalizado para el sidebar - oculto por defecto */
.sidebar-nav::-webkit-scrollbar {
    width: 0;
    background: transparent;
}

.sidebar-nav::-webkit-scrollbar-track {
    background: transparent;
}

.sidebar-nav::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.3);
    border-radius: 4px;
}

.sidebar-nav::-webkit-scrollbar-thumb:hover {
    background: rgba(255, 255, 255, 0.5);
}

/* Mostrar scrollbar solo en hover */
.sidebar-nav:hover::-webkit-scrollbar {
    width: 4px;
}

/* Firefox - scrollbar oculto por defecto */
.sidebar-nav {
    scrollbar-width: none;
}

.sidebar-nav:hover {
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, 0.3) transparent;
}

.sidebar-menu {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* Menús desplegables del sidebar */
.sidebar-dropdown {
    position: relative;
    border-top: 1px solid rgba(255, 255, 255, 0.15);
    margin-top: 8px;
}

.sidebar-dropdown-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px 8px;
    color: var(--sidebar-text-color);
    text-decoration: none;
    border-radius: 4px;
    transition: background 0.2s, color 0.2s;
    white-space: nowrap;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
}

.sidebar-dropdown-toggle:hover {
    background: var(--sidebar-hover-bg);
    color: var(--sidebar-text-color);
}

.sidebar-container.expanded .sidebar-dropdown-toggle {
    justify-content: flex-start;
    padding: 10px 16px;
}

.sidebar-dropdown-toggle i {
    width: 32px;
    text-align: center;
    font-size: 18px;
    flex-shrink: 0;
}

.sidebar-dropdown-toggle .menu-text {
    display: none;
    font-size: 14px !important;
}

.sidebar-container.expanded .sidebar-dropdown-toggle .menu-text {
    display: inline;
    margin-left: 8px;
    flex: 1;
}

.sidebar-dropdown-toggle .dropdown-arrow {
    display: none;
    margin-left: auto;
    font-size: 10px;
    transition: transform 0.2s;
}

.sidebar-container.expanded .sidebar-dropdown-toggle .dropdown-arrow {
    display: inline;
}

.sidebar-dropdown.open .sidebar-dropdown-toggle .dropdown-arrow {
    transform: rotate(180deg);
}

/* Contenido del dropdown - oculto por defecto */
.sidebar-dropdown-content {
    display: none;
    padding-left: 0;
}

.sidebar-container.expanded .sidebar-dropdown.open .sidebar-dropdown-content {
    display: block;
}

/* Sub-dropdown (tercer nivel - Catálogos) */
.sidebar-sub-dropdown {
    position: relative;
}

.sidebar-sub-dropdown-toggle {
    display: flex;
    align-items: center;
    padding: 8px 16px;
    padding-left: 22px;
    color: var(--sidebar-text-color);
    text-decoration: none;
    border-radius: 4px;
    transition: background 0.2s;
    cursor: pointer;
    font-size: 14px !important;
}

.sidebar-sub-dropdown-toggle:hover {
    background: var(--sidebar-hover-bg);
}

.sidebar-sub-dropdown-toggle .menu-text {
    flex: 1;
    font-size: 14px;
}

.sidebar-sub-dropdown-toggle .dropdown-arrow {
    font-size: 10px;
    transition: transform 0.2s;
}

.sidebar-sub-dropdown.open .sidebar-sub-dropdown-toggle .dropdown-arrow {
    transform: rotate(180deg);
}

.sidebar-sub-dropdown-content {
    display: none;
}

.sidebar-sub-dropdown.open .sidebar-sub-dropdown-content {
    display: block;
}

.sidebar-sub-dropdown-content .sidebar-menu-item .sidebar-menu-link {
    padding-left: 70px;
    position: relative;
}

.sidebar-sub-dropdown-content .sidebar-menu-item .sidebar-menu-link::before {
    content: "•";
    position: absolute;
    left: 15px !important;
    color: var(--sidebar-text-color);
    opacity: 0.6;
}

/* Items dentro de dropdown */
.sidebar-dropdown-content .sidebar-menu-item .sidebar-menu-link {
    padding: 8px 16px 8px 48px;
    font-size: 14px;
}

.sidebar-dropdown-content .sidebar-menu-item .sidebar-menu-link i {
    display: none;
}

.sidebar-dropdown-content .sidebar-menu-item .sidebar-menu-link .menu-text {
    display: inline;
    margin-left: 0;
}

/* Títulos de sección (legacy - mantener para compatibilidad) */
.sidebar-section-title {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 16px 8px 10px;
    margin: 8px 0 4px;
    color: var(--sidebar-text-muted);
    font-size: 14px;
    font-weight: 500;
    text-transform: capitalize;
    letter-spacing: 0.5px;
    white-space: nowrap;
    border-top: 1px solid rgba(255, 255, 255, 0.15);
}

.sidebar-container.expanded .sidebar-section-title {
    justify-content: flex-start;
    padding: 16px 16px 10px;
    margin: 8px 0 4px;
}

.sidebar-section-title i {
    width: 32px;
    text-align: center;
    font-size: 18px;
    flex-shrink: 0;
}

.sidebar-section-title .menu-text {
    display: none;
}

.sidebar-container.expanded .sidebar-section-title .menu-text {
    display: inline;
    margin-left: 8px;
}

/* Items del menú */
.sidebar-menu-item {
    position: relative;
    border-radius: 4px;
    transition: background 0.2s;
}

/* Sub-items ocultos en modo compacto */
.sidebar-subitem {
    display: none;
}

.sidebar-container.expanded .sidebar-subitem {
    display: block;
}

.sidebar-menu-link {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 10px 8px;
    color: var(--sidebar-text-color);
    text-decoration: none;
    border-radius: 4px;
    transition: background 0.2s, color 0.2s;
    white-space: nowrap;
    position: relative;
}

.sidebar-menu-link:hover,
.sidebar-menu-link:focus,
.sidebar-menu-link:active {
    color: var(--sidebar-text-color) !important;
    text-decoration: none !important;
    outline: none !important;
    box-shadow: none !important;
    background: var(--sidebar-hover-bg);
}

.sidebar-container.expanded .sidebar-menu-link {
    justify-content: flex-start;
    padding: 10px 16px;
}

.sidebar-menu-link i {
    width: 32px;
    text-align: center;
    font-size: 18px;
    flex-shrink: 0;
}

.sidebar-menu-link .menu-text {
    display: none;
    font-size: 14px;
}

.sidebar-container.expanded .sidebar-menu-link .menu-text {
    display: inline;
    margin-left: 8px;
}

/* Estado activo */
.sidebar-menu-item.active .sidebar-menu-link {
    background: var(--sidebar-active-bg);
    font-weight: 500;
}

/* Footer del sidebar */
.sidebar-footer {
    /* border-top: 1px solid rgba(255, 255, 255, 0.1); */
    padding: 8px 0;
    background: transparent;
}
.sidebar-menu-link .notif-trigger, .sidebar-user{
	border-top: 1px solid rgba(255, 255, 255, 0.1);
}

/* Notificaciones */
.notif-trigger {
    position: relative;
	border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.notif-badge {
    position: absolute;
    top: 6px;
    left: 36px;
    background: #dc3545;
    color: white;
    border-radius: 10px;
    padding: 2px 6px;
    font-size: 10px;
    font-weight: bold;
    min-width: 18px;
    text-align: center;
}

/* Dropdown de notificaciones */
.notificaciones-dropdown {
    display: none;
    position: fixed;
    width: 350px;
    max-height: calc(100vh - 40px);
    background: white;
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
    z-index: 1060;
    overflow: hidden;
    flex-direction: column;
}

.notif-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 15px;
    background: #f8f9fa;
    border-bottom: 1px solid #e0e0e0;
    flex-shrink: 0;
}

.notif-divider {
    height: 1px;
    background: #e0e0e0;
    flex-shrink: 0;
}

.notif-lista {
    flex: 1;
    overflow-y: auto;
    min-height: 100px;
}

.notif-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 15px;
    border-bottom: 1px solid #f0f0f0;
    cursor: pointer;
    transition: background 0.2s;
}

.notif-item:hover {
    background: #f8f9fa;
}

.notif-no-leida {
    background: #DDF4EB;
}

.notif-no-leida:hover {
    background: #c8e6d9;
}

.notif-content {
    flex: 1;
}

.notif-message {
    font-size: 13px;
    color: #333;
    margin-bottom: 4px;
}

.notif-time {
    font-size: 11px;
    color: #6c757d;
}

.notif-new-badge {
    background: #5B9E85;
    color: white;
    font-size: 10px;
    padding: 3px 8px;
    border-radius: 12px;
    font-weight: 500;
}

.notif-empty {
    padding: 30px 15px;
    text-align: center;
    color: #6c757d;
    font-size: 13px;
}

.notif-footer {
    display: block;
    padding: 12px 15px;
    text-align: center;
    color: #5b9e85;
    font-weight: 500;
    text-decoration: none;
    background: #f8f9fa;
    font-size: 13px;
    flex-shrink: 0;
    border-top: 1px solid #e0e0e0;
}

.notif-footer:hover {
    background: #e9ecef;
    color: #4a8a73;
}

/* Sección de usuario */
.sidebar-user {
    position: relative;
    margin: 8px;
}

.sidebar-user-trigger {
    display: flex;
    align-items: center;
    padding: 10px 8px;
    cursor: pointer;
    border-radius: 4px;
    transition: background 0.2s;
}

.sidebar-container.expanded .sidebar-user-trigger {
    padding: 10px 16px;
}

.sidebar-user-trigger:hover,
.sidebar-user-trigger:focus {
    background: var(--sidebar-hover-bg);
    outline: none;
}

.user-avatar-container {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    border: 2px solid rgba(255, 255, 255, 0.3);
}

.user-avatar-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.user-avatar-initials {
    width: 100%;
    height: 100%;
    background: #f5a623;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 14px;
}

.user-info {
    display: none;
    flex-direction: column;
}

.sidebar-container.expanded .user-info {
    display: flex;
    margin-left: 10px;
}

.user-name {
    font-size: 13px;
    font-weight: 600;
    color: var(--sidebar-text-color);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.user-role {
    font-size: 11px;
    color: var(--sidebar-text-muted);
}

.user-dropdown-arrow {
    display: none;
    margin-left: auto;
    font-size: 12px;
    color: var(--sidebar-text-muted);
}

.sidebar-container.expanded .user-dropdown-arrow {
    display: inline;
}

/* Dropdown de usuario */
.user-dropdown {
    display: none;
    position: absolute;
    bottom: 100%;
    left: 0;
    right: 0;
    margin-bottom: 8px;
    background: white;
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
    z-index: 1050;
    overflow: hidden;
}

.sidebar-container:not(.expanded) .user-dropdown {
    left: 100%;
    right: auto;
    width: 250px;
    margin-left: 10px;
    margin-bottom: 0;
}

.user-dropdown-header {
    padding: 12px 16px;
    background: #f8f9fa;
    border-bottom: 1px solid #e0e0e0;
}

.user-dropdown-header strong {
    font-size: 16px;
    color: #333;
}

.user-dropdown-header small {
    font-size: 16px;
}

.user-dropdown-item {
    display: block;
    padding: 10px 16px;
    color: #333;
    text-decoration: none;
    font-size: 16px;
    transition: background 0.2s;
    cursor: pointer;
    border: none;
    background: none;
    width: 100%;
    text-align: left;
}

.user-dropdown-item:hover {
    background: #f8f9fa;
    color: #333;
}

.user-dropdown-item.logout-item:hover {
    background: rgba(91, 158, 133, 0.1);
    color: #5B9E85;
}

/* Sección del dropdown de usuario */
.user-dropdown-section {
    padding: 8px 16px 4px 16px;
}

.user-dropdown-section-title {
    font-size: 14px;
    font-weight: 600;
    color: #888;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Estilo Netflix para dropdown back */
.user-dropdown-back {
    font-weight: 500;
}

.user-dropdown-back i {
    font-size: 0.85rem;
}

.dropdown-divider {
    height: 1px;
    background: #e0e0e0;
    margin: 0;
}

/* Main content ajustado para el nuevo sidebar */
.app-layout {
    margin-left: var(--sidebar-width-compact);
    min-height: 100vh;
    transition: margin-left var(--sidebar-transition);
    padding-top: 0px;
    background: #f5f5f5;
}

/* Ajustar contenido cuando sidebar está anclado */
html.sidebar-pinned .app-layout,
body:has(.sidebar-container.expanded.pinned) .app-layout {
    margin-left: var(--sidebar-width-expanded);
}

.main-content {

}

/* Responsive */
/* Mobile sidebar styles moved to section 8 — LEFT DRAWER WITH HAMBURGER */

/* --- Estructura base --- */
.page-wrapper {
	display: flex;
	flex-direction: column;
	min-height: 100vh; /* ocupa todo el alto de la ventana */
}

.main-content {
	flex: 1; /* empuja el footer al final */
}

/* --- Estilos del footer --- */
.footer-container {
	background-color: #222 !important;
	color: #ccc !important;
	padding: 15px 40px !important;
	font-size: 14px !important;
	border-top: 1px solid #333 !important;
	bottom: 0 !important;
	position: fixed !important;
}

.footer-content {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
}

.footer-left {
	display: flex;
	align-items: center;
	gap: 10px;
}

.footer-logo-img {
	max-height: 40px;
	opacity: 0.9;
}

.footer-right {
	text-align: right;
}

.footer-links {
	margin-bottom: 4px;
	text-decoration: underline;
}

.footer-link {
	color: #ccc;
	text-decoration: none;
	margin: 0 5px;
	font-weight: 400;
	transition: color 0.3s ease;
}

.footer-link:hover {
	color: #fff;
}

.footer-separator {
	color: #666;
}

.footer-copyright {
	font-size: 12px;
	color: #777;
}

/* --- Responsive --- */
@media (max-width: 768px) {
	.footer-content {
		flex-direction: column;
		text-align: center;
		gap: 8px;
	}

	.footer-right {
		text-align: center;
	}
}


/* app/assets/stylesheets/application.css */
.nav-tabs .nav-link {
	color: #495057;
	font-weight: 500;
	border: 1px solid transparent;
	padding: 0.75rem 1.25rem;
}

.nav-tabs .nav-link.active {
	color: #5B9E85;
	background-color: #fff;
	border-color: #dee2e6 #dee2e6 #fff;
	border-bottom: 3px solid #5B9E85;
}

.nav-tabs .nav-link:hover {
	border-color: #e9ecef #e9ecef #dee2e6;
}

.tab-content {
	padding: 1.5rem 0;
}

.required > label:after,
.required label.form-label:after,
label.required:after {
	content: " *";
	color: #dc3545;
}


/* File input styling */
.custom-file-upload {
	border: 1px solid #ccc;
	display: inline-block;
	padding: 6px 12px;
	cursor: pointer;
	border-radius: 4px;
}

.file-preview {
	margin-top: 10px;
	padding: 10px;
	border: 1px solid #eee;
	border-radius: 4px;
	background: #f8f9fa;
}

.file-preview img {
	max-width: 100%;
	max-height: 200px;
	margin-bottom: 10px;
}

.preview-container {
	margin-top: 10px;
}

.header-logo {
	width: 61px;
	height: 34px;
}
/* app/assets/stylesheets/custom.css */
.custom-profile-circle {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background-color: #6c757d;
	color: white;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	overflow: hidden;
	position: relative;
}

.user-avatar {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Estilo para el formulario de carga de avatar */
.avatar-upload {
	display: none;
}

.avatar-upload-label {
	display: block;
	cursor: pointer;
	padding: 5px 10px;
	background: #f8f9fa;
	border-radius: 4px;
	margin-top: 5px;
	text-align: center;
}

.avatar-upload-label:hover {
	background: #e9ecef;
}
/* Estilos para el menú de usuario */
.custom-user-menu {
	position: relative;
	cursor: pointer;
	margin-right: 10px;
}

.fa-regular {
	color: white;
}

/* Estilos para la flecha */
.fa-chevron-down {
	font-size: 0.7rem;
	transition: transform 0.3s ease;
}

/* Efecto hover en la flecha */
.d-flex.align-items-center:hover .fa-chevron-down {
	transform: translateY(2px);
}

/* Estilos para los badges de rol */
.badge {
	font-size: 0.7rem;
	font-weight: 500;
	padding: 0.25em 0.5em;
	border-radius: 4px;
}

/* Ajustes para móviles */
@media (max-width: 991.98px) {
	.d-flex.align-items-center {
		flex-direction: column;
		align-items: flex-end;
	}

	.me-3 {
		margin-right: 0 !important;
		margin-bottom: 0.5rem;
	}
}

h1.h3.mb-0 {
	font-size: 24px !important;
}


/* Estilos para el contenedor de "Mostrar" */
.d-flex.align-items-center.gap-2 {
	gap: 0.5rem;
	align-items: center;
}

/* Ajustes para el select */
.filtro-input {
	border-radius: 6px;
	border: 1px solid #ced4da;
	padding: 0.375rem 0.75rem;
	height: 38px;
}

/* Asegurar que el label no se desalinee */
.form-label.mb-0 {
	white-space: nowrap;
	margin-bottom: 0 !important;
}

.btn-reset {
	border: 1px solid #D6D6D6 !important;
	background: #FAFAFA !important;
	width: 48px !important;
	height: 48px !important;
	border-radius: 4px !important;
	padding-top: 3px !important;
	padding-right: 12px !important;
	padding-bottom: 3px !important;
	padding-left: 12px !important;
	gap: 8px !important;
	opacity: 1 !important;
	border-width: 1px !important;
}

.btn-refresh > img{
	width: 24px !important;
	height: 24px !important;
}

.tables-container{
	margin-top: 40px;
}

.table-responsive{
	border: 1px solid #ABABAB;
	border-radius: 15px;
}

.table > thead > tr > th,
.table > thead > tr > th > a{
	height: 51px;
	padding-top: 16px;
	padding-right: 24px;
	padding-bottom: 16px;
	padding-left: 24px;
	background: #E0E8E3;
	color: #6B6B6B !important;
	font-size: 16px !important;
}


.table > thead > tr > th:first-child {
	border-top-left-radius: 10px;
}

.table > thead > tr > th:last-child {
	border-top-right-radius: 10px;
}


.table > thead > tr > th::first-letter,
.table > thead > tr > th > a::first-letter {
	text-transform: uppercase;
}

.table > tbody > tr > td,
.table > tbody > tr > td > a {
	font-size: 16px !important;
}

.table tbody tr:nth-child(even) td {
	background-color: #fafafa;
}

.table tbody tr:nth-child(odd) td {
	background-color: #ffffff;
}

/* Estilos para las columnas ordenables */
.sortable-column {
	color: #6B6B6B !important;
	text-decoration: none;
	display: flex;
	align-items: center;
	gap: 8px;
	transition: color 0.2s;
}

.sortable-column:hover {
	color: #5B9E85 !important;
	text-decoration: none;
}

.sort-arrow {
	font-size: 0.75rem;
	color: #ABABAB;
	transition: color 0.2s;
	margin-left: 4px;
}

.sortable-column:hover .sort-arrow {
	color: #5B9E85;
}

/* Estilos específicos para las flechas */
.fa-arrow-up {
	color: #5B9E85;
}

.fa-arrow-down {
	color: #5B9E85;
}

/* Asegurar que el texto no se mueva al agregar la flecha */
th a {
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	height: 100%;
}

.pagination > li {
	margin: 0 30px;
}

.page-item > .page-link {
	color: #6B6B6B !important;
	background: transparent !important;
	width: 24px !important;
	height: 24px !important;
	border-radius: 4px !important;
}

.page-item.active > .page-link {
	color: #FFF !important;
	background: #5B9E85 !important;
}

li.page-item {
	align-items: center;
	display: flex;
}

a.page-link {
	align-items: center;
	display: flex;
	justify-content: center;
}

tr {
	border: 0px transparent;
}

html, body {
	margin: 0;
}

.page-container {
	display: flex;
	flex-direction: column;
	min-height: 100vh; /* Altura total del viewport */
}

.main-content {
	flex: 1; /* Ocupa el espacio disponible */
}

/* Footer general para cuando hay usuario logueado */
.footer-container {
	background: #f5f5f5;
	padding: 15px 20px;
	text-align: center;
	width: 100%;
	border-top: 1px solid #ddd;
	position: relative;
	z-index: 1050;
}

/* El footer debe estar por encima del sidebar visualmente */
footer.footer-container,
footer.footer-container-inv {
	position: relative;
	z-index: 1050;
}

/* app/assets/stylesheets/custom.css */
.modal-backdrop {
	z-index: 1040;
}

.modal {
	z-index: 1050;
}

.modal-content {
	border: none;
	border-radius: 8px;
	box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}

.modal-header {
	border-bottom: 1px solid #e9ecef;
	padding: 1rem 1.5rem;
}

.modal-title {
	font-weight: 600;
	color: #333;
}

.modal-body {
	padding: 1.5rem;
}

.modal-footer {
	border-top: 1px solid #e9ecef;
	padding: 1rem 1.5rem;
}

/* Style for the form elements */
.form-label {
	font-weight: 500;
	color: #495057;
	margin-bottom: 0.5rem;
}

.form-control {
	border-radius: 4px;
	border: 1px solid #ced4da;
	padding: 0.5rem 0.75rem;
}

.form-control:focus {
	border-color: #E50914;
	box-shadow: 0 0 0 0.2rem rgba(229, 9, 20, 0.25);
}

/* Style for the switch */
.form-check-input:checked {
	background-color: #5B9E85;
	border-color: #5B9E85;
}

/* ===== Contenedor general ===== */
.wizard-bar {
	background-color: #fff;
	width: 90px;
	min-height: 100vh;
	display: flex;
	align-items: flex-start;
	justify-content: center;
	border-right: 1px solid #e5e5e5;
	margin-right: 40px;
}

/* ===== Lista de pasos ===== */
.wizard-steps {
	flex-direction: column;   /* Vertical */
	align-items: center;
	width: 100%;
	gap: 12px;
}

/* ===== Cada paso ===== */
.wizard-step {
	display: flex;
	flex-direction: column;
	align-items: center;
	color: #9a9a9a;
	font-size: 0.85rem;
	cursor: pointer;
	transition: all 0.2s ease;
	padding: 10px 0;
}

.wizard-step i {
	font-size: 1.2rem;
	margin-bottom: 4px;
	color: #b3b3b3;
}

/* ===== Hover ===== */
.wizard-step:hover i {
	color: #4f7c56; /* Verde acento */
}

.wizard-step:hover span {
	color: #4f7c56;
}

/* ===== Texto ===== */
.wizard-step span {
	display: block;
	text-align: center;
	font-size: 0.78rem;
	color: #777;
}

/* ===== Estado activo ===== */
.wizard-step .active {
	background-color: #e8f3ed;
	color: #4f7c56;
	border-radius: 50%;
	padding: 8px;
}

.wizard-step .active + span {
	color: #4f7c56;
	font-weight: 600;
}

/* ===== Ajustes visuales ===== */
.wizard-steps li {
	width: 100%;
	text-align: center;
}

.wizard-step:not(:last-child) {
	border-bottom: 1px solid transparent;
}

/* ===== Contenedor Wizard + Contenido lado a lado ===== */
.convocatoria-wizard-container {
	display: flex;
	flex-direction: row;
	min-height: calc(100vh - 60px);
}

.convocatoria-wizard-container .wizard-bar {
	flex-shrink: 0;
}

.convocatoria-content {
	flex: 1;
	padding: 20px 40px;
}

/* ===== Wizard Steps - Layout lado a lado para steps ===== */
/* Cuando app-layout contiene wizard-bar y container (sin importar elementos entre ellos) */
.app-layout:has(> .wizard-bar):has(> .container) {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
}

.app-layout:has(> .wizard-bar):has(> .container) > .convocatoria-selector {
	width: 100%;
	flex-shrink: 0;
}

.app-layout:has(> .wizard-bar):has(> .container) > .wizard-bar {
	flex-shrink: 0;
}

.app-layout:has(> .wizard-bar):has(> .container) > .container {
	flex: 1;
	max-width: none;
	padding: 20px 40px;
}

.btn-default{
	background-color: #FAFAFA !important;
	color: #6B6B6B !important;
	min-width: 206px !important;
	height: 48px !important;
	border-radius: 4px !important;
	padding-top: 12px !important;
	padding-right: 24px !important;
	padding-bottom: 12px !important;
	padding-left: 24px !important;
	gap: 8px !important;
	opacity: 1 !important;
	font-size: 16px !important;
}

.form-container {
	border-radius: 15px;
	border: 1px solid #ddd;
	padding: 25px;
	margin: 0px 0px 25px;
}


.form-control:not(.fc-alt) {
	border-radius: 15px;
	height: 40px;
}

.form-select {
	border-radius: 15px !important;
	padding: 11px !important;
}


.badge-default {
	background-color: #ccc;
	color: #6B6B6B;
	font-weight: bold;
	padding: 5px 10px;
	border-radius: 10px;
}


.modal-right .modal-dialog {
	position: fixed;
	margin: 0;
	width: 632px;
	max-width: 100vw;
	height: 98vh;
	transform: translateX(100%);
	transition: transform 0.3s ease-out;
}

.modal-right .modal-dialog-vertical {
	margin: 1vh;
	right: 0;
	top: 0;
	bottom: 0;
}

.modal-right.show .modal-dialog {
	transform: translateX(0);
}

.modal-backdrop {
	background-color: rgba(0, 0, 0, 0.5);
}

.modal-content {
	height: 100%;
	border-radius: 15px !important;
	border: none;
	box-shadow: -5px 0 15px rgba(0, 0, 0, 0.1);
}

.modal-header {
	border-bottom: 0px !important;
	padding: 1.25rem 1.5rem;
}

.modal-body {
	padding: 1.5rem;
	overflow-y: auto;
}

.modal-footer {
	border-top: 0px !important;
	padding: 33px 30px !important;
}

/* Asegúrate de que el modal tenga transición */
.modal {
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

/* Estilo cuando el modal se está cerrando */
.modal .modal-dialog {
  transition: transform 0.3s ease-out;
}

/* Estilo específico para el modal derecho */
.modal-right .modal-dialog {
   transform: translateX(100%) !important;
  transition: transform 0.3s ease-out !important;
}

/* Cuando el modal se muestra */
.modal-right.show .modal-dialog {
  transform: translateX(0) !important;
}

/* Asegúrate de que el backdrop también tenga transición */
.modal-backdrop {
  transition: opacity 0.3s ease;
}

.h2 {
	font-size: 24px;
}

.divider-dot {
  display: inline-block;
  width: 6px;
  height: 6px;
  margin: 0 10px;
  background-color: #555; /* color del punto */
  border-radius: 50%;
  vertical-align: middle;
}

select.form-control {
  color: #212529 !important; /* Color de texto oscuro */
  background-color: #fff !important;
  -webkit-appearance: menulist !important; /* Forzar el estilo nativo en navegadores webkit */
  -moz-appearance: menulist !important; /* Para Firefox */
  appearance: menulist !important;
}

/* Estilo para el texto del placeholder */
select.form-control option[value=""] {
  color: #6c757d; /* Color gris para el placeholder */
}

/* Asegurar que el texto seleccionado sea visible */
select.form-control:not(:focus) {
  color: #212529 !important;
}
select.form-select,
select.form-control {
  color: #212529 !important;
  background-color: #fff !important;
  -webkit-appearance: menulist !important;
  -moz-appearance: menulist !important;
  appearance: menulist !important;
}

select.form-select option,
select.form-control option {
  color: #212529 !important;
  background-color: #fff !important;
  padding: 8px 12px;
}

/* Estilos para option con hover/focus */
select.form-select option:hover,
select.form-control option:hover,
select.form-select option:focus,
select.form-control option:focus {
  background-color: #5B9E85 !important;
  color: #fff !important;
}

/* Option seleccionado */
select.form-select option:checked,
select.form-control option:checked {
  background-color: #4a8b71 !important;
  color: #fff !important;
}

.form-select {
	--bs-form-select-bg-img: none !important;
}
/* app/assets/stylesheets/application.css */
.is-invalid {
  border-color: #dc3545;
}

.invalid-feedback {
  width: 100%;
  margin-top: 0.25rem;
  font-size: 0.875em;
  color: #dc3545;
}


/* Opcional: Mejora visual para el modal de notificaciones */
#notification-errors li {
  padding: 8px 12px;
  background-color: #f8d7da;
  border-radius: 4px;
  margin-bottom: 8px;
}

#notification-errors li:last-child {
  margin-bottom: 0;
}

/* Estilos globales para badges con bg-* */
.badge.bg-danger,
.badge.bg-success,
.badge.bg-warning,
.badge.bg-info,
.badge.bg-primary,
.badge-role,
.badge.bg-secondary {
  min-width: 110px;
  text-align: center;
  border: none !important;
  font-weight: 300 !important;
  font-size: 12px !important;
  height: 25px;
  padding: 7px;
}

.bg-danger {
  background-color: #f8d7da !important;
  color: #dc3545 !important;
  border: none !important;
}

.bg-success {
  background-color: #d4edda !important;
  color: #28a745 !important;
  border: none !important;
}

.bg-warning {
  background-color: #fff3cd !important;
  color: #856404 !important;
  border: none !important;
}

.bg-info {
  background-color: #DDF4EB !important;
  color: #2d5a47 !important;
  border: none !important;
}

.bg-primary {
  background-color: #DDF4EB !important;
  color: #2d5a47 !important;
  border: none !important;
}

.text-primary {
  color: #5B9E85 !important;
}

.btn-primary {
  background-color: #5B9E85 !important;
  border-color: #5B9E85 !important;
  color: #fff !important;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
  background-color: #4a8b71 !important;
  border-color: #4a8b71 !important;
}

.border-primary {
  border-color: #5B9E85 !important;
}

.navbar-dark.bg-primary {
  background-color: #5B9E85 !important;
}

.btn-link {
  color: #5B9E85 !important;
}

.btn-link:hover,
.btn-link:focus {
  color: #4a8b71 !important;
}

.bg-secondary {
  background-color: #e2e3e5 !important;
  color: #6c757d !important;
  border: none !important;
}

.modal-header.bg-success .btn-close,
.modal-header.bg-danger .btn-close {
  filter: brightness(0) invert(1);
}

div#notification-body {
	padding: 30px 26px 10px;
}

h5#notification-title {
	color: white;
}


.modal .modal-header {
	padding: 23px 26px;
	border-radius: 15px 15px 0px 0px !important;
}

/* app/assets/stylesheets/application.css */

#form_errors {
  animation: slideDown 0.3s ease-out;
}

@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.invalid-feedback {
  display: none;
  font-size: 0.875rem;
  color: #dc3545;
  margin-top: 0.25rem;
}

.is-invalid ~ .invalid-feedback {
  display: block;
}

.form-control.is-invalid,
.form-select.is-invalid {
  border-color: #dc3545;
  padding-right: calc(1.5em + 0.75rem);
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");
  background-repeat: no-repeat;
  background-position: right calc(0.375em + 0.1875rem) center;
  background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}


select#tipo_documento_formatos {
	height: 68px;
}

h6.convocatoria-title{
	font-size: 20px !important;
}

button.btn.btn-reset.d-flex.justify-content-between.align-items-center.me-2 {
	padding-left: 15px !important;
}

/* Common button styles */
.btn-danger,.btn-green,.btn-green,.btn-orange,.btn-red,.btn-default,.btn-green-inv,.btn-check {
    min-width: 206px !important;
    height: 48px !important;
    border-radius: 4px !important;
    padding: 12px 24px !important;
    gap: 8px !important;
    opacity: 1 !important;
    font-size: 16px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    text-decoration: none !important;
    cursor: pointer !important;
    border: 1px solid transparent !important;
    transition: all 0.3s ease !important;
}

/* Specific button styles */
button.btn.btn-danger {
    min-width: 48px !important;
    min-height: 48px !important;
    background-color: #e67168 !important;
    color: #FFF !important;
}

button.btn.btn-danger:hover {
    background-color: #d9534f !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

button.btn.btn-check {
    min-width: 48px !important;
    min-height: 48px !important;
    background-color: #FAFAFA !important;
    color: #5B9E85 !important;
}

button.btn.btn-check:hover {
    background-color: #f0f0f0 !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

.btn-green {
    background-color: #5B9E85 !important;
    color: white !important;
}

.btn-green:hover {
    background-color: #4a8b71 !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

.btn-green-inv {
    background-color: #FAFAFA !important;
    color: #5B9E85 !important;
    border: 1px solid #5B9E85 !important;
}

.btn-green-inv:hover {
    background-color: #f0f0f0 !important;
    color: #4a8b71 !important;
    border-color: #4a8b71 !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

/* Botón toggle para mostrar/ocultar contraseña */
.btn-toggle-password {
    background-color: #FAFAFA;
    color: #5B9E85;
    border: 1px solid #e0e0e0;
    border-left: none;
    border-radius: 0 15px 15px 0;
    height: 40px;
    min-width: auto;
    padding: 0 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.2s ease;
}

.btn-toggle-password:hover {
    background-color: #f0f0f0;
    color: #4a8b71;
    border-color: #4a8b71;
}

.btn-toggle-password:focus {
    outline: none;
    box-shadow: 0 0 0 0.2rem rgba(91, 158, 133, 0.25);
}

.btn-toggle-password i {
    font-size: 14px;
}

/* Ajustar el input cuando está junto al botón toggle */
.input-group .form-control.input-with-toggle {
    border-radius: 15px 0 0 15px;
    border-right: none;
}

.btn-orange {
    background-color: #F2B15E !important;
    color: #FFF !important;
    border-color: #FF9800 !important;
}

.btn-orange:hover {
    background-color: #e6a23c !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

.btn-red {
    background-color: #e67168 !important;
    color: #FFF !important;
    border-color: #dc3545 !important;
}

.btn-red:hover {
    background-color: #d9534f !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

.btn-default {
    background-color: #FAFAFA !important;
    color: #6c757d !important;
    border-color: #6c757d !important;
}

.btn-default:hover {
    background-color: #e9ecef !important;
    color: #5a6268 !important;
    border-color: #5a6268 !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

.form-check-input:checked {
	background-color: #5B9E85 !important;
	border-color: #4a8b71 !important;
}

.form-check-input {
	background-color: #DDF4EB !important;
	border: 0.5px solid #5B9E85 !important;
}

/* ==================== */
/* Custom Dropdown Selectors for Step3 */
/* ==================== */
.custom-dropdown-wrapper {
    position: relative;
    display: inline-block;
    width: 100%;
}

.custom-select-btn {
    width: 100%;
    padding: 8px 12px;
    background-color: #fff;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 14px;
    color: #374151;
    transition: all 0.2s ease;
    text-align: left;
}

.custom-select-btn::after {
    display: none !important;
}

.custom-select-btn:hover {
    border-color: #5B9E85;
    background-color: #f9fafb;
}

.custom-select-btn:focus {
    outline: none;
    border-color: #5B9E85;
    box-shadow: 0 0 0 3px rgba(91, 158, 133, 0.1);
}

.custom-select-btn .formato-seleccionado,
.custom-select-btn .genero-seleccionado {
    flex: 1;
    text-align: left;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: #374151;
    font-weight: 400;
}

.custom-select-btn .dropdown-arrow {
    margin-left: 8px;
    font-size: 12px;
    color: #6b7280;
    transition: transform 0.2s ease;
}

.custom-select-btn[aria-expanded="true"] .dropdown-arrow {
    transform: rotate(180deg);
}

.custom-dropdown-menu {
    min-width: 180px;
    max-width: 300px;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
    margin-top: 4px;
    padding: 0 !important;
    max-height: 250px;
    overflow-y: auto;
}

.custom-dropdown-item {
    list-style: none;
    padding: 0;
    margin: 0;
    border-bottom: 1px solid #f3f4f6;
}

.custom-dropdown-item:last-child {
    border-bottom: none;
}

.custom-checkbox-label {
    display: flex;
    align-items: center;
    padding: 10px 12px;
    cursor: pointer;
    margin: 0;
    transition: background-color 0.15s ease;
    width: 100%;
}

.custom-checkbox-label:hover {
    background-color: #f9fafb;
}

.custom-checkbox-label input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin: 0;
    margin-right: 10px;
    cursor: pointer;
    flex-shrink: 0;
    background-color: #fff !important;
    border: 2px solid #d1d5db !important;
    border-radius: 4px;
}

.custom-checkbox-label input[type="checkbox"]:checked {
    background-color: #5B9E85 !important;
    border-color: #5B9E85 !important;
    background-image: url("data:image/svg+xml,%3csvg viewBox='0 0 16 16' fill='white' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M12.207 4.793a1 1 0 010 1.414l-5 5a1 1 0 01-1.414 0l-2-2a1 1 0 011.414-1.414L6.5 9.086l4.293-4.293a1 1 0 011.414 0z'/%3e%3c/svg%3e");
}

.custom-checkbox-label .checkbox-text {
    font-size: 14px;
    color: #374151;
    user-select: none;
    flex: 1;
}

/* Scrollbar personalizado para el dropdown */
.custom-dropdown-menu::-webkit-scrollbar {
    width: 6px;
}

.custom-dropdown-menu::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 10px;
}

.custom-dropdown-menu::-webkit-scrollbar-thumb {
    background: #c1c1c1;
    border-radius: 10px;
}

.custom-dropdown-menu::-webkit-scrollbar-thumb:hover {
    background: #a1a1a1;
}

/* Control manual de apertura/cierre de dropdowns */
.custom-dropdown-wrapper {
    position: relative;
}

.custom-dropdown-wrapper .custom-dropdown-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    z-index: 9999 !important;
    margin-top: 4px;
}

.custom-dropdown-wrapper.open .custom-dropdown-menu {
    display: block;
    z-index: 9999 !important;
}

/* Animación suave de la flecha */
.custom-select-btn .dropdown-arrow {
    transition: transform 0.2s ease;
}

.custom-dropdown-wrapper.open .custom-select-btn .dropdown-arrow {
    transform: rotate(180deg);
}
li.custom-dropdown-item {
	background-color: #ffffff;
}

/* =====================================================
   MULTI-SELECT CON TAGS (Estilo chips/etiquetas)
   ===================================================== */

.multi-select-tags-container {
    position: relative;
    width: 100%;
}

.multi-select-tags-input {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    min-height: 38px;
    padding: 4px 8px;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    background-color: #fff;
    cursor: text;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.multi-select-tags-input:hover {
    border-color: #9ca3af;
}

.multi-select-tags-input:focus-within,
.multi-select-tags-input.focused {
    border-color: #5B9E85;
    box-shadow: 0 0 0 2px rgba(91, 158, 133, 0.15);
    outline: none;
}

.multi-select-tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 6px 2px 10px;
    background-color: #f3f4f6;
    border: 1px solid #e5e7eb;
    border-radius: 3px;
    font-size: 13px;
    color: #374151;
    line-height: 1.4;
    white-space: nowrap;
    max-width: 100%;
}

.multi-select-tag-text {
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 200px;
}

.multi-select-tag-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    padding: 0;
    margin-left: 2px;
    background: none;
    border: none;
    border-radius: 2px;
    color: #6b7280;
    font-size: 14px;
    font-weight: bold;
    line-height: 1;
    cursor: pointer;
    transition: background-color 0.15s ease, color 0.15s ease;
}

.multi-select-tag-remove:hover {
    background-color: #e5e7eb;
    color: #dc2626;
}

.multi-select-search-input {
    flex: 1;
    min-width: 60px;
    border: none;
    outline: none;
    padding: 4px 0;
    font-size: 14px;
    background: transparent;
}

.multi-select-search-input::placeholder {
    color: #9ca3af;
}

.multi-select-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 1050;
    margin-top: 4px;
    max-height: 200px;
    overflow-y: auto;
    background-color: #fff;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    display: none;
}

.multi-select-dropdown.show {
    display: block;
}

.multi-select-option {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    cursor: pointer;
    transition: background-color 0.15s ease;
}

.multi-select-option:hover {
    background-color: #f3f4f6;
}

.multi-select-option.selected {
    background-color: #ecfdf5;
}

.multi-select-option.highlighted {
    background-color: #e0f2fe;
}

.multi-select-option input[type="checkbox"] {
    width: 16px;
    height: 16px;
    margin: 0;
    accent-color: #5B9E85;
    cursor: pointer;
}

.multi-select-option-text {
    flex: 1;
    font-size: 14px;
    color: #374151;
}

.multi-select-no-results {
    padding: 12px;
    text-align: center;
    color: #6b7280;
    font-size: 13px;
}

/* Scrollbar personalizado */
.multi-select-dropdown::-webkit-scrollbar {
    width: 6px;
}

.multi-select-dropdown::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 3px;
}

.multi-select-dropdown::-webkit-scrollbar-thumb {
    background: #c1c1c1;
    border-radius: 3px;
}

.multi-select-dropdown::-webkit-scrollbar-thumb:hover {
    background: #a1a1a1;
}

/* Variante compacta para tablas */
.multi-select-tags-container.compact .multi-select-tags-input {
    min-height: 32px;
    padding: 2px 6px;
}

.multi-select-tags-container.compact .multi-select-tag {
    padding: 1px 4px 1px 8px;
    font-size: 12px;
}

.multi-select-tags-container.compact .multi-select-search-input {
    font-size: 12px;
    padding: 2px 0;
}

/* Asegurar que el dropdown no se corte en tablas */
table.custom-table {
    overflow: visible !important;
}

table.custom-table tbody tr {
    position: relative;
}

table.custom-table tbody tr td {
    overflow: visible !important;
}

.table-responsive {
    overflow: visible !important;
}

.tables-container {
    overflow: visible !important;
}
span.input-group-text {
	border-radius: 15px;
	background-color: #ffffff;
	border-right: none;
}
input#convocatoria_precio {
	border-left: none;
}
span.badge.bg-secondary.fs-6, span.badge.bg-success.fs-6 {
	font-size: 16px !important;
	font-weight: 500;
	padding: 10px 20px;
}

span.badge.bg-secondary.fs-6 {
	background-color: #F4F4F4 !important;
	color: #000;
}

span.badge.bg-success.fs-6 {
	border: 1px solid #5B9E85 !important;
	background-color: #DDF4EB !important;
	color: #406D60 !important;
}

span.badge.fs-6.regular {
	padding: 12px 12px !important;
	text-align: center !important;
}

/* ==================== */
/* Delete Confirmation Modal Styles */
/* ==================== */
.delete-resource-btn {
	cursor: pointer;
	transition: all 0.3s ease;
}

.delete-resource-btn:hover {
	opacity: 0.8;
	transform: scale(1.1);
}

#deleteConfirmationModal .alert-warning {
	border-left: 4px solid #ffc107;
	background-color: #fffbf0;
	border-color: #ffc107;
}

#deleteConfirmationModal .modal-footer .btn-danger {
	background-color: #dc3545;
	border-color: #dc3545;
	min-width: 150px;
}

#deleteConfirmationModal .modal-footer .btn-danger:hover {
	background-color: #c82333;
	border-color: #bd2130;
}

#deleteConfirmationModal .modal-footer .btn-default {
	background-color: #f0f0f0;
	border-color: #d3d3d3;
	color: #333;
	min-width: 150px;
}

#deleteConfirmationModal .modal-footer .btn-default:hover {
	background-color: #e0e0e0;
	border-color: #b3b3b3;
}

/* ==================== */
/* Convocatoria Selector - Full Width */
/* ==================== */
.app-layout .convocatoria-selector {
    margin-left: -30px;
    margin-right: -30px;
    margin-top: -20px;
    width: calc(100% + 60px);
    /* margin-bottom: 20px; */
	padding-left: 38px !important;
}

/* ==================================================================================== */
/* RESPONSIVE FIXES - Mobile First Approach                                             */
/* ==================================================================================== */

/* ======================
   1. MODAL RESPONSIVE
   ====================== */
@media (max-width: 768px) {
    .modal-right .modal-dialog {
        width: 100% !important;
        max-width: 100vw !important;
        height: 100vh !important;
        margin: 0 !important;
        border-radius: 0 !important;
    }

    .modal-right .modal-content {
        border-radius: 0 !important;
        height: 100% !important;
    }

    .modal-right .modal-dialog-vertical {
        margin: 0 !important;
    }

    .modal-footer {
        padding: 15px !important;
        flex-direction: column;
        gap: 10px;
    }

    .modal-footer .btn {
        width: 100% !important;
        margin: 0 !important;
    }
}

@media (max-width: 480px) {
    .modal-header {
        padding: 1rem !important;
    }

    .modal-body {
        padding: 1rem !important;
    }

    .modal-title {
        font-size: 1.1rem !important;
    }
}

/* ======================
   2. BUTTONS RESPONSIVE
   ====================== */
@media (max-width: 576px) {
    .btn-danger, .btn-green, .btn-orange, .btn-red, .btn-default, .btn-green-inv, .btn-check {
        min-width: auto !important;
        width: 100% !important;
        padding: 10px 16px !important;
        font-size: 14px !important;
    }

    .btn-default {
        min-width: auto !important;
        width: 100% !important;
    }

    /* Buttons in flex containers */
    .d-flex .btn-green,
    .d-flex .btn-default,
    .d-flex .btn-green-inv {
        flex: 1 !important;
        min-width: 0 !important;
    }

    /* Button groups should stack */
    .btn-group-responsive {
        flex-direction: column !important;
        width: 100% !important;
    }

    .btn-group-responsive .btn {
        width: 100% !important;
        margin-bottom: 8px !important;
    }
}

@media (max-width: 768px) {
    .btn-danger, .btn-green, .btn-orange, .btn-red, .btn-default, .btn-green-inv {
        min-width: 140px !important;
        padding: 10px 20px !important;
    }
}

/* ======================
   3. WIZARD RESPONSIVE
   ====================== */
@media (max-width: 992px) {
    .convocatoria-wizard-container {
        flex-direction: column !important;
    }

    .convocatoria-wizard-container .wizard-bar {
        width: 100% !important;
        flex-direction: row !important;
        overflow-x: auto !important;
        padding: 10px !important;
    }

    .wizard-bar {
        width: 100% !important;
        min-height: auto !important;
        flex-direction: row !important;
        overflow-x: auto !important;
        white-space: nowrap !important;
        -webkit-overflow-scrolling: touch;
    }

    .wizard-step {
        display: inline-flex !important;
        flex-direction: column !important;
        min-width: 80px !important;
        padding: 10px !important;
    }

    .wizard-step:not(:last-child) {
        border-bottom: none !important;
        border-right: 1px solid rgba(255,255,255,0.2) !important;
    }

    .convocatoria-content {
        padding: 15px !important;
    }

    .app-layout:has(> .wizard-bar):has(> .container) {
        flex-direction: column !important;
    }

    .app-layout:has(> .wizard-bar):has(> .container) > .container {
        padding: 15px !important;
    }
}

@media (max-width: 576px) {
    .wizard-step {
        min-width: 70px !important;
        font-size: 12px !important;
    }

    .wizard-step .step-number {
        width: 28px !important;
        height: 28px !important;
        font-size: 12px !important;
    }
}

/* ======================
   4. TABLES RESPONSIVE
   ====================== */
.table-responsive {
    position: relative;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* Scroll indicator shadow */
.table-responsive::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 30px;
    background: linear-gradient(to left, rgba(0,0,0,0.05), transparent);
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.3s;
}

.table-responsive.has-scroll::after {
    opacity: 1;
}

@media (max-width: 768px) {
    .table-responsive {
        margin: 0 -15px;
        padding: 0 15px;
        width: calc(100% + 30px);
    }

    .tables-container .table th,
    .tables-container .table td {
        padding: 8px 10px !important;
        font-size: 13px !important;
    }

    .tables-container .table th {
        white-space: nowrap;
    }

    /* Hide less important columns on mobile */
    .table .d-none-mobile {
        display: none !important;
    }
}

@media (max-width: 576px) {
    .tables-container .table th,
    .tables-container .table td {
        padding: 6px 8px !important;
        font-size: 12px !important;
    }
}

/* ======================
   5. FOOTER RESPONSIVE
   ====================== */
@media (max-width: 768px) {
    .footer-container,
    .footer-container-inv {
        padding: 20px 0 !important;
        padding-left: 0 !important; /* Remover padding del sidebar en mobile */
    }

    .footer-content {
        padding: 0 15px !important;
    }

    .footer-left,
    .footer-right {
        min-width: auto !important;
        width: 100% !important;
        text-align: center !important;
        justify-content: center !important;
        align-items: center !important;
    }

    .footer-left {
        flex-direction: column !important;
        margin-bottom: 20px !important;
    }

    .footer-logo {
        margin-right: 0 !important;
        margin-bottom: 15px !important;
    }

    .footer-address {
        text-align: center !important;
    }

    .footer-links {
        flex-wrap: wrap !important;
        justify-content: center !important;
    }

    .footer-link {
        margin: 5px 10px !important;
    }
}

@media (max-width: 576px) {
    .footer-container {
        padding: 15px 0 !important;
    }

    .footer-logo-img {
        max-width: 100px !important;
    }

    .footer-address p {
        font-size: 12px !important;
    }
}

/* App layout footer adjustment */
@media (max-width: 768px) {
    .app-layout {
        padding-bottom: 20px !important;
    }
}

/* ======================
   6. FORMS RESPONSIVE
   ====================== */
@media (max-width: 768px) {
    .filtros-container .row {
        margin: 0 !important;
    }

    .filtros-container [class*="col-md"] {
        padding: 5px 10px !important;
        margin-bottom: 10px !important;
    }

    .filtros-container .col-md-4,
    .filtros-container .col-md-3,
    .filtros-container .col-md-2 {
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }

    /* Per page selector inline */
    .filtros-container .col-12.d-flex {
        margin-top: 15px !important;
    }

    /* Remove hardcoded margin-top */
    .filtros-container [style*="margin-top: 50px"] {
        margin-top: 15px !important;
    }
}

@media (max-width: 576px) {
    .form-control,
    .form-select {
        font-size: 14px !important;
        padding: 8px 12px !important;
    }

    .form-label {
        font-size: 13px !important;
        margin-bottom: 4px !important;
    }

    .input-group {
        flex-wrap: nowrap !important;
    }
}

/* ======================
   7. SEARCH BAR RESPONSIVE
   ====================== */
@media (max-width: 768px) {
    .search-bar {
        margin: 0 10px !important;
        max-width: none !important;
    }
}

@media (max-width: 576px) {
    .search-bar {
        margin: 0 5px !important;
        flex-grow: 1 !important;
    }

    .search-bar input {
        padding: 6px 10px !important;
        font-size: 14px !important;
    }
}

/* ======================
   8. SIDEBAR RESPONSIVE — LEFT DRAWER WITH HAMBURGER
   ====================== */

/* Hamburger button */
.mobile-hamburger {
    display: none;
    position: fixed;
    top: 12px;
    left: 12px;
    z-index: 1060;
    background: var(--sidebar-gradient, linear-gradient(180deg, #2d3436 0%, #1a1a2e 100%));
    border: none;
    color: #fff;
    width: 44px;
    height: 44px;
    border-radius: 10px;
    font-size: 22px;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 8px rgba(0,0,0,0.25);
    cursor: pointer;
    transition: background 0.2s;
}

.mobile-hamburger:hover,
.mobile-hamburger:active {
    background: #5B9E85;
}

/* Overlay behind drawer */
.mobile-sidebar-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.5);
    z-index: 1049;
    opacity: 0;
    transition: opacity 0.3s ease;
}

.mobile-sidebar-overlay.active {
    opacity: 1;
}

@media (max-width: 768px) {
    :root {
        --sidebar-width-compact: 0px !important;
    }

    .mobile-hamburger {
        display: flex !important;
    }

    .mobile-sidebar-overlay {
        display: block;
        pointer-events: none;
    }

    .mobile-sidebar-overlay.active {
        pointer-events: auto;
    }

    .sidebar-container {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        bottom: 0 !important;
        right: auto !important;
        width: 280px !important;
        height: 100% !important;
        flex-direction: column !important;
        z-index: 1055 !important;
        transform: translateX(-100%) !important;
        transition: transform 0.3s ease !important;
        overflow-y: auto !important;
        padding: 0 !important;
    }

    .sidebar-container.mobile-open {
        transform: translateX(0) !important;
    }

    /* Show all sidebar elements in mobile drawer */
    .sidebar-header {
        display: flex !important;
        justify-content: space-between !important;
        padding: 12px 16px !important;
    }

    .sidebar-brand-text {
        display: inline !important;
    }

    .sidebar-logo-icon {
        width: 34px !important;
        height: 34px !important;
    }

    .sidebar-toggle-btn {
        display: flex !important;
    }

    .sidebar-nav {
        display: block !important;
        flex: 1 !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        flex-direction: column !important;
    }

    .sidebar-menu {
        flex-direction: column !important;
        width: 100% !important;
    }

    .sidebar-menu-item {
        text-align: left !important;
    }

    .sidebar-menu-link {
        flex-direction: row !important;
        padding: 12px 20px !important;
        font-size: 15px !important;
        gap: 12px !important;
    }

    .sidebar-menu-link i {
        font-size: 18px !important;
        width: 24px !important;
        text-align: center !important;
        margin-bottom: 0 !important;
    }

    .menu-text {
        font-size: 15px !important;
        display: inline !important;
    }

    .sidebar-footer {
        display: block !important;
        border-top: 1px solid rgba(255,255,255,0.1) !important;
        padding: 8px 0 !important;
    }

    .sidebar-section-title {
        display: block !important;
    }

    .convocatoria-badge-container {
        display: block !important;
    }

    .convocatoria-badge-text {
        display: block !important;
    }

    .convocatoria-badge {
        justify-content: flex-start !important;
        padding: 8px 10px !important;
    }

    /* Sidebar dropdowns in mobile drawer */
    .sidebar-dropdown-toggle {
        display: flex !important;
        padding: 12px 20px !important;
        font-size: 15px !important;
        gap: 12px !important;
    }

    .sidebar-dropdown-toggle .menu-text {
        display: inline !important;
        font-size: 15px !important;
    }

    .sidebar-dropdown-toggle .dropdown-arrow {
        display: inline !important;
    }

    .sidebar-dropdown.open .sidebar-dropdown-content {
        display: block !important;
    }

    .sidebar-dropdown-content .sidebar-menu-link {
        padding-left: 56px !important;
    }

    /* User info in mobile */
    .sidebar-user-trigger {
        display: flex !important;
        padding: 10px 16px !important;
        gap: 10px !important;
    }

    .user-info {
        display: flex !important;
        flex-direction: column !important;
    }

    .user-name {
        font-size: 14px !important;
    }

    .user-role {
        font-size: 12px !important;
    }

    .user-dropdown-arrow {
        display: inline !important;
    }

    .app-layout {
        margin-left: 0 !important;
        padding-top: 60px !important;
        padding-bottom: 20px !important;
    }

    /* Dropdowns in mobile sidebar */
    .notificaciones-dropdown {
        position: fixed !important;
        top: 60px !important;
        left: 10px !important;
        right: 10px !important;
        bottom: auto !important;
        max-height: 70vh !important;
        width: auto !important;
    }

    .user-dropdown {
        position: relative !important;
        left: auto !important;
        right: auto !important;
        top: auto !important;
        bottom: auto !important;
        width: 100% !important;
        max-height: none !important;
        background: rgba(255,255,255,0.05) !important;
    }
}

/* ======================
   9. CONVOCATORIA SELECTOR RESPONSIVE
   ====================== */
@media (max-width: 768px) {
    .app-layout .convocatoria-selector {
        margin-left: -15px !important;
        margin-right: -15px !important;
        width: calc(100% + 30px) !important;
        padding-left: 15px !important;
        padding-right: 15px !important;
    }

    .convocatoria-selector .container {
        padding: 0 10px !important;
    }
}

@media (max-width: 576px) {
    .app-layout .convocatoria-selector {
        margin-left: -10px !important;
        margin-right: -10px !important;
        width: calc(100% + 20px) !important;
        padding: 10px !important;
    }
}

/* ======================
   10. STAT CARDS RESPONSIVE
   ====================== */
@media (max-width: 768px) {
    .stat-card .stat-value {
        font-size: 1.5rem !important;
    }

    .stat-card .stat-label {
        font-size: 0.75rem !important;
    }

    .stat-card {
        padding: 1rem !important;
    }
}

@media (max-width: 576px) {
    .stat-card .stat-value {
        font-size: 1.25rem !important;
    }

    .stat-card {
        padding: 0.75rem !important;
    }
}

/* ======================
   11. TOOLTIPS RESPONSIVE
   ====================== */
@media (max-width: 768px) {
    .tooltip {
        max-width: 200px !important;
    }

    .tooltip-inner {
        font-size: 12px !important;
        padding: 5px 10px !important;
    }
}

/* ======================
   12. CARDS & CONTAINERS RESPONSIVE
   ====================== */
@media (max-width: 768px) {
    .container {
        padding-left: 15px !important;
        padding-right: 15px !important;
    }

    .card {
        margin-bottom: 15px !important;
    }

    .card-body {
        padding: 15px !important;
    }

    .card-header {
        padding: 12px 15px !important;
    }
}

@media (max-width: 576px) {
    .container {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }

    .card-body {
        padding: 10px !important;
    }
}

/* ======================
   13. PAGINATION RESPONSIVE
   ====================== */
@media (max-width: 576px) {
    .pagination {
        flex-wrap: wrap !important;
        justify-content: center !important;
    }

    .pagination .page-link {
        padding: 6px 10px !important;
        font-size: 12px !important;
    }

    .pagination .page-item {
        margin: 2px !important;
    }
}

/* ======================
   14. BADGES RESPONSIVE
   ====================== */
@media (max-width: 576px) {
    .badge {
        font-size: 10px !important;
        padding: 3px 6px !important;
    }

    .badge-status,
    .badge-default {
        font-size: 10px !important;
        padding: 3px 8px !important;
    }
}

/* ======================
   15. ALERTS RESPONSIVE
   ====================== */
@media (max-width: 576px) {
    .alert {
        padding: 10px 15px !important;
        font-size: 13px !important;
    }

    .alert i {
        margin-right: 8px !important;
    }
}

/* ======================
   16. HEADER/TITLE & BASE FONT RESPONSIVE
   ====================== */
@media (max-width: 768px) {
    /* Base font size increase for readability */
    body {
        font-size: 16px !important;
    }

    p, span, li, td, th, label, .form-control, .form-select, .btn, small, .text-muted {
        font-size: 15px !important;
    }

    h1, .h1 {
        font-size: 1.6rem !important;
    }

    h2, .h2 {
        font-size: 1.35rem !important;
    }

    h3, .h3 {
        font-size: 1.2rem !important;
    }

    h4, .h4 {
        font-size: 1.1rem !important;
    }

    h5, .h5 {
        font-size: 1rem !important;
    }

    .page-title {
        font-size: 1.35rem !important;
    }

    /* Dashboard admin panel text sizes */
    .grafana-dashboard {
        padding: 10px !important;
    }

    .dashboard-title {
        font-size: 1.3rem !important;
    }

    .dashboard-subtitle {
        font-size: 14px !important;
    }

    .panel-title {
        font-size: 14px !important;
    }

    .stat-value {
        font-size: 1.8rem !important;
    }

    .stat-label {
        font-size: 14px !important;
    }

    .stat-change {
        font-size: 13px !important;
    }

    .funnel-label {
        font-size: 13px !important;
    }

    .funnel-value {
        font-size: 14px !important;
    }

    .panel-badge {
        font-size: 13px !important;
    }

    .dashboard-grid {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }

    .dashboard-grid .panel {
        grid-column: 1 / -1 !important;
    }

    .chart-container {
        height: 180px !important;
    }

    .chart-container-lg {
        height: 220px !important;
    }

    .map-container {
        height: 250px !important;
    }

    /* Badge text */
    .badge {
        font-size: 13px !important;
    }

    /* Table text */
    .table td, .table th {
        font-size: 14px !important;
        padding: 8px 6px !important;
    }

    /* Alert text */
    .alert {
        font-size: 15px !important;
    }

    /* Progress bar text */
    .progress-bar {
        font-size: 13px !important;
    }

    /* Card text */
    .card-body {
        font-size: 15px !important;
    }
}

@media (max-width: 576px) {
    body {
        font-size: 15px !important;
    }

    h1, .h1 {
        font-size: 1.4rem !important;
    }

    h2, .h2 {
        font-size: 1.2rem !important;
    }

    h3, .h3 {
        font-size: 1.1rem !important;
    }
}

/* ======================
   17. GENERAL SPACING RESPONSIVE
   ====================== */
@media (max-width: 768px) {
    .py-4 {
        padding-top: 1rem !important;
        padding-bottom: 1rem !important;
    }

    .mb-4 {
        margin-bottom: 1rem !important;
    }

    .mt-4 {
        margin-top: 1rem !important;
    }

    .gap-3 {
        gap: 0.75rem !important;
    }

    .gap-4 {
        gap: 1rem !important;
    }
}

/* ======================
   18. ICONS RESPONSIVE
   ====================== */
@media (max-width: 576px) {
    .icon-btn {
        padding: 5px !important;
    }

    .icon-btn i {
        font-size: 14px !important;
    }

    .icon-edit,
    .icon-delete {
        font-size: 14px !important;
    }
}

/* ======================
   19. DROPDOWN MENUS RESPONSIVE
   ====================== */
@media (max-width: 768px) {
    .dropdown-menu {
        min-width: auto !important;
        max-width: calc(100vw - 20px) !important;
    }

    .dropdown-item {
        padding: 8px 15px !important;
        font-size: 14px !important;
    }
}

/* ======================
   20. IMAGES RESPONSIVE
   ====================== */
img {
    max-width: 100%;
    height: auto;
}

.img-fluid {
    max-width: 100% !important;
    height: auto !important;
}

/* ======================
   21. FLEX UTILITIES RESPONSIVE
   ====================== */
@media (max-width: 576px) {
    .d-flex.justify-content-between {
        flex-wrap: wrap !important;
    }

    .d-flex.justify-content-between > * {
        margin-bottom: 10px !important;
    }

    .flex-column-mobile {
        flex-direction: column !important;
    }
}

/* ======================
   22. HIDE/SHOW RESPONSIVE UTILITIES
   ====================== */
@media (max-width: 576px) {
    .hide-xs {
        display: none !important;
    }
}

@media (max-width: 768px) {
    .hide-sm {
        display: none !important;
    }
}

@media (min-width: 769px) {
    .show-sm-only {
        display: none !important;
    }
}

/* ======================
   LANDSCAPE PHONE ADJUSTMENTS
   ====================== */
@media (max-height: 500px) and (orientation: landscape) {
    .modal-right .modal-dialog {
        height: 100vh !important;
    }
}

select option:checked {
  background-color: #1e90ff; /* color seleccionado */
  color: white;
}

/* ======================
   23. MULTI-SELECT TAGS COMPONENT
   ====================== */
.multi-select-tags-container {
  position: relative;
  width: 100%;
}

.multi-select-tags-input {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 5px;
  min-height: 38px;
  padding: 6px 10px;
  border: 1px solid #ced4da;
  border-radius: 4px;
  background-color: #fff;
  cursor: text;
  transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.multi-select-tags-input:hover {
  border-color: #b1b1b1;
}

.multi-select-tags-input.focused {
  border-color: #5B9E85;
  box-shadow: 0 0 0 0.2rem rgba(91, 158, 133, 0.25);
}

/* Tags */
.multi-select-tag {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 8px;
  background-color: #f0f0f0;
  border: 1px solid #d0d0d0;
  border-radius: 3px;
  font-size: 13px;
  line-height: 1.4;
  max-width: 200px;
  color: #333;
}

.multi-select-tag-text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.multi-select-tag-remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  padding: 0;
  border: none;
  background: transparent;
  color: #666;
  font-size: 14px;
  font-weight: bold;
  line-height: 1;
  cursor: pointer;
  border-radius: 2px;
  transition: background-color 0.15s, color 0.15s;
}

.multi-select-tag-remove:hover {
  background-color: #dc3545;
  color: white;
}

/* Search input */
.multi-select-search-input {
  flex: 1;
  min-width: 100px;
  border: none;
  outline: none;
  padding: 2px 0;
  font-size: 14px;
  background: transparent;
}

.multi-select-search-input::placeholder {
  color: #999;
}

/* Dropdown */
.multi-select-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 1050;
  max-height: 250px;
  overflow-y: auto;
  background-color: #fff;
  border: 1px solid #ced4da;
  border-top: none;
  border-radius: 0 0 4px 4px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  display: none;
}

.multi-select-dropdown.show {
  display: block;
}

/* Options */
.multi-select-option {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  cursor: pointer;
  transition: background-color 0.15s;
}

.multi-select-option:hover {
  background-color: #f5f5f5;
}

.multi-select-option.selected {
  background-color: #e8f5e9;
}

.multi-select-option-text {
  flex: 1;
  font-size: 14px;
  color: #333;
}

/* No results */
.multi-select-no-results {
  padding: 12px;
  text-align: center;
  color: #999;
  font-style: italic;
}

/* Compact mode */
.multi-select-tags-container.compact .multi-select-tags-input {
  min-height: 32px;
  padding: 4px 8px;
}

.multi-select-tags-container.compact .multi-select-tag {
  padding: 2px 6px;
  font-size: 12px;
}

.multi-select-tags-container.compact .multi-select-option {
  padding: 6px 10px;
}

/* ==================== */
/* Member Theme - Hidden sidebar and dark footer for F3/F6 users */
/* ==================== */

/* Hide sidebar by default for members */
body.member-theme .sidebar-container {
    transform: translateX(-100%);
    transition: transform 0.3s ease;
}

body.member-theme.sidebar-visible .sidebar-container {
    transform: translateX(0);
}

/* Adjust main content when sidebar is hidden */
body.member-theme .app-layout {
    margin-left: 0 !important;
    transition: margin-left 0.3s ease;
}

body.member-theme.sidebar-visible .app-layout {
    margin-left: var(--sidebar-width-compact) !important;
}

html.sidebar-pinned body.member-theme.sidebar-visible .app-layout,
body.member-theme.sidebar-visible:has(.sidebar-container.expanded.pinned) .app-layout {
    margin-left: var(--sidebar-width-expanded) !important;
}

/* Adjust footer when sidebar is hidden */
body.member-theme .footer-container-inv {
    padding-left: 0 !important;
    transition: padding-left 0.3s ease;
}

body.member-theme.sidebar-visible .footer-container-inv {
    padding-left: var(--sidebar-width-compact) !important;
}

html.sidebar-pinned body.member-theme.sidebar-visible .footer-container-inv,
body.member-theme.sidebar-visible:has(.sidebar-container.expanded.pinned) .footer-container-inv {
    padding-left: var(--sidebar-width-expanded) !important;
}

/* Floating toggle button for members */
.member-sidebar-toggle {
    position: fixed;
    top: 20px;
    left: 18px;
    z-index: 1050;
    width: 44px;
    height: 44px;
    border-radius: 4px;
    background: #000000;
    border: 1px solid #888888;
    color: #888888;
    font-size: 18px;
    cursor: pointer;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
}

.member-sidebar-toggle:hover {
    background: #1a1a1a;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.4);
}

body.member-theme.sidebar-visible .member-sidebar-toggle {
    left: calc(var(--sidebar-width-compact) + 18px);
}

html.sidebar-pinned body.member-theme.sidebar-visible .member-sidebar-toggle,
body.member-theme.sidebar-visible:has(.sidebar-container.expanded.pinned) .member-sidebar-toggle {
    left: calc(var(--sidebar-width-expanded) + 18px);
}

/* Hide toggle button when not member theme */
body:not(.member-theme) .member-sidebar-toggle {
    display: none;
}

/* Hide pin button in member theme (visionado) */
body.member-theme .sidebar-toggle-btn {
    display: none !important;
}

/* In member theme, sidebar should always be expanded when visible */
body.member-theme.sidebar-visible .sidebar-container {
    width: var(--sidebar-width-expanded) !important;
}

body.member-theme.sidebar-visible .sidebar-container .sidebar-header {
    justify-content: center;
    padding: 12px 16px;
}

body.member-theme.sidebar-visible .sidebar-container .menu-text {
    display: inline !important;
    opacity: 1 !important;
}

body.member-theme.sidebar-visible .sidebar-container .sidebar-menu-link {
    justify-content: flex-start;
    padding: 10px 16px;
}

body.member-theme.sidebar-visible .sidebar-container .sidebar-brand-text {
    display: inline !important;
}

body.member-theme.sidebar-visible .sidebar-container .convocatoria-badge-text {
    display: inline !important;
}

body.member-theme.sidebar-visible .sidebar-container .dropdown-arrow {
    display: inline !important;
}

body.member-theme.sidebar-visible .app-layout {
    margin-left: var(--sidebar-width-expanded) !important;
}

body.member-theme.sidebar-visible .member-sidebar-toggle {
    left: calc(var(--sidebar-width-expanded) + 18px);
}

/* Footer dark theme for members */
body.member-theme .footer-container-inv {
    background-color: #000000;
    color: #ffffff;
    border-top: 1px solid rgba(255, 255, 255, 0.15);
}

body.member-theme .footer-container-inv .footer-address p {
    color: rgba(255, 255, 255, 0.7);
}

body.member-theme .footer-container-inv .footer-link {
    color: #ffffff !important;
}

body.member-theme .footer-container-inv .footer-link:hover {
    color: rgba(255, 255, 255, 0.8) !important;
}

body.member-theme .footer-container-inv .footer-separator {
    color: rgba(255, 255, 255, 0.3);
}

body.member-theme .footer-container-inv .footer-copyright p {
    color: rgba(255, 255, 255, 0.6);
}

/* ========== VISIONADO / MEMBER-THEME MOBILE ========== */
@media (max-width: 768px) {
    /* Hamburger button dark theme for visionado */
    body.member-theme .mobile-hamburger {
        background: rgba(0, 0, 0, 0.7) !important;
        border: 1px solid rgba(255, 255, 255, 0.2) !important;
        color: #fff !important;
        backdrop-filter: blur(8px);
        -webkit-backdrop-filter: blur(8px);
        width: 38px !important;
        height: 38px !important;
        font-size: 18px !important;
        top: 8px !important;
        left: 8px !important;
        border-radius: 8px !important;
        box-shadow: 0 2px 8px rgba(0,0,0,0.4) !important;
    }

    /* Hide old member-sidebar-toggle on mobile (using new hamburger) */
    body.member-theme .member-sidebar-toggle {
        display: none !important;
    }

    /* Sidebar uses hamburger system on mobile, not the member toggle */
    body.member-theme .sidebar-container {
        transform: translateX(-100%) !important;
    }

    body.member-theme .sidebar-container.mobile-open {
        transform: translateX(0) !important;
    }

    /* App layout — no extra top padding needed on visionado (dark bg) */
    body.member-theme .app-layout {
        padding-top: 0 !important;
        margin-left: 0 !important;
    }

    /* Footer compact on mobile for visionado */
    body.member-theme .footer-container-inv {
        background-color: #000 !important;
        padding: 12px 15px !important;
        padding-left: 0 !important;
        position: relative !important;
        font-size: 12px !important;
    }

    body.member-theme .footer-container-inv .footer-content {
        flex-direction: column !important;
        gap: 8px !important;
        padding: 0 10px !important;
    }

    body.member-theme .footer-container-inv .footer-left,
    body.member-theme .footer-container-inv .footer-right,
    body.member-theme .footer-container-inv .footer-center {
        width: 100% !important;
        text-align: center !important;
        justify-content: center !important;
    }

    body.member-theme .footer-container-inv .footer-logo-img {
        max-height: 28px !important;
    }

    body.member-theme .footer-container-inv .footer-copyright p {
        font-size: 11px !important;
        margin-bottom: 0 !important;
        color: rgba(255,255,255,0.5) !important;
    }

    body.member-theme .footer-container-inv .footer-link {
        font-size: 11px !important;
        color: rgba(255,255,255,0.6) !important;
    }

    body.member-theme .footer-container-inv .footer-links {
        margin-bottom: 0 !important;
    }
}
