/*----------  DEFINICION DE FUENTES  ----------*/
@font-face {
	font-family: 'roboto_medium_regular';
	src: url('../webfonts/roboto-medium-webfont.woff2') format('woff2'),
		url('../webfonts/roboto-medium-webfont.woff') format('woff');
	font-weight: normal;
	font-style: normal;

}

@font-face {
	font-family: 'roboto_condensed_light';
	src: url('../webfonts/robotocondensed-light-webfont.woff2') format('woff2'),
		url('../webfonts/robotocondensed-light-webfont.woff') format('woff'),
		url('../webfonts/robotocondensed-light-webfont.ttf') format('truetype');
	font-weight: normal;
	font-style: normal;
}

@font-face {
	font-family: 'roboto_condensed_regular';
	src: url('../webfonts/robotocondensed-regular-webfont.woff2') format('woff2'),
		url('../webfonts/robotocondensed-regular-webfont.woff') format('woff');
	font-weight: normal;
	font-style: normal;

}

@font-face {
	font-family: 'roboto_condensed_bold';
	src: url('../webfonts/robotocondensed-bold-webfont.woff2') format('woff2'),
		url('../webfonts/robotocondensed-bold-webfont.woff') format('woff');
	font-weight: bold;
	font-style: bold;

}

/*----------  FIN DE DEFINICION DE FUENTES  ----------*/

/*----------  DEFINICION DE COLORES  ----------*/
:root {
	--primary: #009688;
	--bg-dark: #0a0c10;
	--card-bg: #111827;
	--text-main: #e2e8f0;
	--border-color-2: #1e293b;
	--color-three: #009688;

	/* Variables Legacy (Por si otros scripts las necesitan) */
	--color-one: #F5F5F5;
	--color-two: #24292E;
	--form-color: #14111A;
	--accent-color: #253556;
	--accent-color-two: #060606;
	--border-color: #D8D8D8;
}

/*----------  FIN DE DEFINICION DE COLORES  ----------*/

/*----------  GENERALES Y TEXTOS  ----------*/
body,
html {
	font-family: 'roboto_condensed_light', sans-serif;
	background-color: var(--bg-dark) !important;
	color: var(--text-main) !important;
	width: 100vw;
	height: 100vh;
	font-size: 16px;
}

*,
*::before,
*::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

.full-box {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	width: 100%;
}

.header {
	background-color: var(--bg-dark) !important;
	color: var(--text-main) !important;
	font-family: 'Outfit', sans-serif !important;
	min-height: 100vh;
}

/* Ajustes de legibilidad general en contenedores oscuros */
p,
span,
label,
th,
td {
	color: var(--text-main);
}

/*CLASE PARA REMARCAR AL JUGADOR EN UNA TABLA*/
.marcar-usuario {
	text-decoration: none;
	font-weight: bold;
	background-color: rgba(255, 255, 153, 1);
}

.destacar-fila {
	text-decoration: none;
	font-weight: bold;
	background-color: rgba(255, 153, 153, 1);
}

/* COLOREAR */
.danger {
	color: var(--danger);
}

.primary {
	color: var(--primary);
}

.secondary {
	color: var(--secondary);
}

.success {
	color: var(--success);
}

/*----------  FIN DE GENERALES  ----------*/

/*----------  LOGIN  ----------*/
.login-container {
	width: 100vw;
	height: 100vh;
	display: flex;
	justify-content: center;
	align-items: center;
}

.login-content {
	background: #111827;
	padding: 40px;
	border-radius: 12px;
	border: 1px solid var(--border-color-2);
	width: 100%;
	max-width: 450px;
}

.logo-wrap {
	text-align: center;
	margin-bottom: 24px;
}

.logo-wrap img {
	max-width: 150px;
}

.form-group {
	margin-bottom: 18px;
}

#formularioLogin label {
	display: block;
	font-size: 14px;
	margin-bottom: 6px;
	color: #ffffff !important;
}

#formularioLogin input,
#formularioLogin select {
	width: 100%;
	background: #0a0c10;
	border: 1px solid rgba(80, 160, 255, .2);
	border-radius: 8px;
	padding: 12px 14px;
	margin-top: 10px;
	color: #e2e8f0;
	font-family: 'Outfit', sans-serif;
	font-size: 15px;
	outline: none;
}

/* Efecto al pulsar el input */
#formularioLogin .form-group:focus-within label {
	color: var(--primary) !important;
}

#formularioLogin input:focus {
	border-color: var(--primary);
}

.btn-login {
	width: 100%;
	background: #dc2626;
	border: none;
	border-radius: 8px;
	padding: 13px;
	color: #fff;
	font-family: 'Outfit', sans-serif;
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	transition: background .15s;
	margin-top: 10px;
}

.btn-login:hover {
	background: #b91c1c;
}

/*----------  PAGE LAYOUT  ----------*/
.main-container {
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	overflow: hidden;
}

.page-content,
.nav-lateral {
	height: 100%;
	overflow: hidden;
}

.page-content {
	position: relative;
	padding-left: 300px;
	transition: all .2s ease-in-out;
	padding-bottom: 20px;
	background-color: var(--bg-dark) !important;
	color: var(--text-main) !important;
}

/*----------  MENÚ DE NAVEGACIÓN LATERAL (CORREGIDO Y CENTRADO)  ----------*/
.nav-lateral {
	width: 300px;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 1;
	transition: all .2s ease-in-out;
	border-right: 1px solid var(--border-color-2);
}

.nav-lateral-bg {
	display: none;
}

.nav-lateral-content {
	max-width: 300px;
	height: 100%;
	background-color: var(--bg-dark);
}

.nav-lateral-bar {
	height: 3px;
	/* background-color: var(--primary); */
}

.nav-lateral-avatar {
	padding: 40px 0;
}

.nav-lateral-avatar i {
	display: none;
}

.nav-lateral-avatar img {
	width: 50%;
	margin: 0 auto;
	display: block;
	border: none;
	border-radius: 0%;
}

.nav-lateral-logo {
	padding: 40px 0;
}

.nav-lateral-logo img {
	width: 50%;
	margin: 0 auto;
	display: block;
}

.nav-lateral-avatar figcaption {
	margin-top: 20px;
	color: #FFF;
}

.nav-lateral-menu {
	height: auto;
}

.nav-lateral-menu,
.nav-lateral-menu ul {
	padding: 0 !important;
	margin: 0 !important;
	list-style: none !important;
	width: 100% !important;
}

.nav-lateral-menu ul li {
	padding: 0 !important;
	margin: 0 !important;
	width: 100% !important;
	display: block !important;
}

.nav-lateral-menu ul li a {
	display: flex !important;
	align-items: center !important;
	justify-content: flex-start !important;
	padding: 14px 24px !important;
	margin: 0 !important;
	width: 100% !important;
	color: var(--text-main) !important;
	text-decoration: none !important;
	box-sizing: border-box !important;
	transition: all .25s ease-in-out !important;
	border-left: 4px solid transparent !important;
	font-size: 17px;
}

.nav-lateral-menu ul li a i {
	margin-right: 14px !important;
	font-size: 1.1rem !important;
	width: 24px !important;
	text-align: center !important;
	display: inline-block !important;
	line-height: 1 !important;
	color: var(--primary);
}

/* Resalto simétrico de borde a borde en Hover y Active */
.nav-lateral-menu ul li a:hover,
.nav-lateral-menu ul li a.active {
	background-color: rgba(0, 150, 136, 0.15) !important;
	color: #ffffff !important;
	border-left: 4px solid var(--primary) !important;
	text-decoration: none !important;
}

.nav-lateral-menu ul li a:hover {
	padding-left: 40px !important;
	text-decoration: underline var(--primary) !important;
}

.nav-lateral-menu ul li ul {
	display: none;
	border: 1px solid var(--primary);
	background: rgba(20, 30, 48, .5);
}

.nav-lateral-menu ul li ul a {
	padding-left: 45px;
}

.show-nav-lateral-submenu {
	display: block !important;
}

.nav-lateral-menu .fa-chevron-down,
.nav-lateral-menu .fa-chevron-up {
	float: right;
	height: 45px;
	line-height: 45px;
	margin-right: 7px;
	transition: all .2s ease-in-out;
}

/*----------  MENU SUPERIOR  ----------*/
.navbar-info {
	height: 50px;
	background-color: var(--bg-dark);
	border-bottom: 1px solid var(--border-color-2);
	text-align: right;
	padding-right: 10px;
}

.navbar-info a {
	color: #ffffff;
	position: relative;
	height: 50px;
	min-width: 40px;
	text-align: center;
	line-height: 50px;
	display: inline-block;
	transition: all .2s ease-out;
	user-select: none;
}

.navbar-info img {
	height: 30px;
	border: 1px solid #FFF;
	border-radius: 100%;
	vertical-align: middle;
}

.navbar-info a:hover {
	color: var(--primary);
	background-image: radial-gradient(circle, rgba(0, 150, 136, .1), transparent 80%);
}

.navbar-info a:hover img {
	border: 1px solid var(--primary);
}

.navbar-info a:active,
.navbar-info a:focus {
	outline: none;
}

.navbar-info a.disabled {
	cursor: not-allowed;
	pointer-events: none;
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	font-weight: bold;
}

/*----------  PAGE HEADERS  ----------*/
.page-header {
	padding: 20px;
	border-bottom: 1px solid var(--border-color-2);
	margin-bottom: 30px
}

.page-header> :nth-child(1) {
	padding-bottom: 7px;
}

.page-header> :nth-child(2) {
	font-size: 18px;
}

/*----------  TABLAS CON ALTO CONTRASTE (CORREGIDO)  ----------*/
.table {
	color: var(--text-main) !important;
	background-color: var(--card-bg) !important;
	border-collapse: collapse !important;
}

.table th,
.table td {
	color: var(--text-main) !important;
	border-top: 1px solid var(--border-color-2) !important;
	padding: 12px 16px !important;
	vertical-align: middle !important;
	border-bottom: none;
}

.table thead th {
	color: #ffffff !important;
	background-color: rgba(255, 255, 255, 0.03) !important;
	border-bottom: 2px solid var(--border-color-2) !important;
	font-weight: 600 !important;
	text-transform: uppercase;
	font-size: 0.85rem;
	letter-spacing: 0.5px;
}

.table-hover tbody tr:hover {
	background-color: rgba(255, 255, 255, 0.02) !important;
}

/* Filas con texto rojo / Advertencias / Retrasos */
.table tr:has(.text-danger),
.table tr.table-danger,
.table tr.danger-row {
	background-color: rgba(239, 68, 68, 0.1) !important;
	/* Fondo rojo ultra suave para generar contraste */
}

.table-hover tbody tr:has(.text-danger):hover,
.table-hover tbody tr.table-danger:hover {
	background-color: rgba(239, 68, 68, 0.16) !important;
}

/* Forzar legibilidad del texto rojo sobre el fondo oscuro y el nuevo tintado */
.text-danger,
.table tr:has(.text-danger) td .text-danger,
.table tr td.text-danger {
	color: #ff6b6b !important;
	/* Rojo brillante pastel, ideal para modos oscuros */
	font-weight: 600 !important;
}

.table .btn {
	margin-bottom: 0;
	font-size: 1.8rem;
}

.table .disabled {
	color: grey;
	cursor: not-allowed;
	pointer-events: none;
}

.table .badge {
	font-size: 1rem;
}

.table .logo {
	padding: 0px 20px;
}

.table .logo-texto {
	display: inline-block;
	padding: 5px;
	width: 75px;
	font-size: 2rem;
	color: grey;
	border: 2px solid var(--primary);
	border-radius: 100%;
	background-color: #f5f5f5;
}

.scroll-active {
	overflow: scroll;
	height: 400px;
}

/*----------  TARJETAS DE OPCIONES PRINCIPALES  ----------*/
.card-container {
	text-align: center;
	padding: 20px 25px;
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
}

a.card:hover {
	color: #ffffff;
	text-decoration: none;
	border-color: var(--primary);
}

a.card:hover .card-title {
	text-decoration: underline var(--primary);
}

.card {
	height: 200px;
	width: 200px;
	min-width: 200px;
	margin: 10px;
	padding: 25px;
	border-radius: 12px;
	text-decoration: none;
	color: #ffffff;
	border: 1px solid var(--border-color-2);
	background: #111827;
	user-select: none;
	transition: all .2s ease-in-out;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}

.card-title {
	font-size: 1.15rem;
	font-weight: 500;
}

.card-icon {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.card-icon>i,
.card-icon-alone>i {
	color: var(--primary);
	font-size: 3rem;
}

.card-number,
.card-number-void {
	font-size: 1.4rem;
	font-weight: 600;
	margin-top: .75rem;
}

.card-number-void {
	visibility: collapse;
}

.card-subtitle {
	font-size: 1.4rem;
	font-weight: 600;
	margin-top: .75rem;
}

/*----------  SISTEMA DE PESTAÑAS (reserva-tabs.php)  ----------*/
.custom-dark-tabs {
	background-color: var(--card-bg);
	padding: 10px;
	border-radius: 8px;
	border: 1px solid var(--border-color-2);
	gap: 10px;
}

.nav-tab-link {
	color: #94a3b8 !important;
	padding: 10px 20px;
	border-radius: 6px;
	display: inline-block;
	text-decoration: none !important;
	font-weight: 500;
	transition: all 0.3s ease;
	line-height: 0 !important;
}

.nav-tab-link i {
	color: var(--primary) !important;
}

.nav-tab-link:hover {
	background-color: rgba(0, 150, 136, 0.15);
	/* color: var(--primary) !important; */
	color: #ffffff !important;
	background-image: linear-gradient(to right, transparent, rgba(255, 255, 255, .1) 50%, transparent);
	text-decoration: underline var(--primary) !important;
}


.nav-tab-link.active {
	/* background-color: var(--primary) !important; */
	background-color: rgba(0, 150, 136, 0.7) !important;
	color: #ffffff !important;
	/* box-shadow: 0 4px 12px rgba(0, 150, 136, 0.3); */
}

.nav-tab-link.active i {
	color: #ffffff !important;
}

/*----------  EDICION ESTILOS BOOTSTRAP FORMULARIOS ----------*/
.form-neon {
	border: 1px solid var(--border-color-2);
	background-color: var(--card-bg);
	padding: 15px;
	border-radius: 8px;
}

.form-control[readonly] {
	background-color: transparent;
}

.form-control:focus,
.form-control:active {
	outline: none;
	box-shadow: none;
	border: none;
}

select#usuario_privilegio.form-control option[value] {
	font-weight: bold;
}

select#usuario_privilegio.form-control {
	color: var(--text-main);
}

select#usuario_privilegio.form-control[disabled] {
	color: var(--text-main);
}

select#usuario_privilegio.form-control option.color-success {
	color: var(--success);
}

select#usuario_privilegio.form-control option.color-danger {
	color: var(--danger);
}

select#usuario_privilegio.form-control option.color-info {
	color: var(--info);
}

select#usuario_privilegio.form-control option.color-warning {
	color: var(--warning);
}

select#usuario_privilegio.form-control option.color-dark {
	color: var(--text-main);
}

.form-control-file:active,
.form-control-file:focus {
	outline: none;
}

.page-link {
	transition: all .2s ease-in-out;
}

.page-link:hover,
.page-link.active {
	background-color: var(--primary);
	color: #FFF;
}

table form {
	margin-bottom: 0;
}

.btn-airsoft,
.btn-airsoft:active,
.btn-airsoft:focus {
	background-color: var(--primary);
	color: #fff;
	border: 1px solid var(--primary);
	transition: all .2s ease-out;
}

.btn-airsoft:hover {
	background-color: var(--color-two);
	border: 1px solid var(--color-two);
	text-decoration: none;
	color: #fff;
}

/* Inputs y Selectores de formularios en Bootstrap standard */
.form-control,
select.form-control {
	background-color: var(--bg-dark) !important;
	border: 1px solid var(--border-color-2) !important;
	color: #ffffff !important;
	border-radius: 6px !important;
	padding: 10px 12px !important;
}

.form-control:focus {
	border-color: var(--primary) !important;
	box-shadow: 0 0 0 0.2rem rgba(0, 150, 136, 0.25) !important;
}

/* Etiquetas de formularios estándar */
label,
.bmd-label-floating {
	color: #94a3b8 !important;
}

/* FUERZA EL ICONO DE FECHA A SER VISIBLE EN MODO OSCURO */
/*input[type="date"]::-webkit-calendar-picker-indicator {
	filter: invert(1); /* CONVIERTE EL ICONO NEGRO EN BLANCO */
/*cursor: pointer;
}*/

/* ACTIVA SI PREFERIMOS USAR EL COLOR PERSONALIZADO EN LUGAR DE BLANCO PURO */
input[type="date"]::-webkit-calendar-picker-indicator {
	/* FILTRO CSS CALCULADO PARA CONVERTIR EL NEGRO A --color-three: #009688 */
	filter: invert(45%) sepia(96%) saturate(1251%) hue-rotate(139deg) brightness(96%) contrast(101%);
	cursor: pointer;
	/*opacity: 0.8; /* AJUSTE OPCIONAL PARA MEJOR INTEGRACION VISUAL */
}

/*input[type="date"]::-webkit-calendar-picker-indicator:hover {
	opacity: 1;
}*/

/*----------  TEXTOS COMPLEMENTARIOS ----------*/
.roboto-medium {
	font-family: 'roboto_medium_regular';
}

.roboto-condensed-light {
	font-family: 'roboto_condensed_light';
}

.roboto-condensed-regular {
	font-family: 'roboto_condensed_regular';
}

.roboto-condensed-bold {
	font-family: 'roboto_condensed_bold';
}

.miTitulo {
	color: #fff;
	background-color: var(--color-two);
	padding: 6px;
}

.miTexto {
	padding: 10px;
}

.miTexto span {
	font-family: 'roboto_medium_regular';
}

.texto-filtros {
	font-size: 1em;
}

/*----------  PAGINA 404  ----------*/
.container-404 {
	width: 100vw;
	height: 100vh;
	position: absolute;
	top: 0;
	color: #FFF;
	display: flex;
	justify-content: center;
	align-items: center;
}

/*----------  RESERVAS: CONFIGURAR JUGADORES  ----------*/
.btn-popover {
	padding-left: 4px;
	top: -6px;
}

.btn-popover small i {
	color: var(--info);
}

.btn-popover:hover,
.btn-popover:focus,
.btn-popover:active {
	background-color: transparent;
}

.popover {
	max-width: 700px;
}

/*----------  RESERVAS: PROFILE JUGADORES  ----------*/
.profile-players {
	font-family: 'Roboto', Arial;
	width: 240px;
	min-height: 350px;
	margin: 10px;
	padding: 0px;
	display: inline-block;
	text-decoration: none;
	border: 2px solid var(--border-color-2);
	transition: all .2s ease-in-out;
}

.profile-players:hover {
	border-color: var(--primary);
}

.profile-players .card {
	text-align: center;
	padding: 20px;
	height: 100%;
	min-height: 350px;
	border-radius: 3px;
	box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.2);
}

.profile-players .avatar {
	border-radius: 50%;
	width: 125px;
	height: 125px;
}

#reserva_registro_players .profile-players .close {
	position: absolute;
	top: 10px;
	right: 10px;
}

#reserva_registro_players .profile-new {
	position: relative;
	display: inline-block;
	top: 2rem;
	opacity: 0.5;
}

.profile-new .profile-players i {
	border-radius: 50%;
	font-size: 125px;
	color: var(--success);
}

.profile-players .title,
.profile-players .subtitle {
	margin: 0;
}

.profile-players .title {
	padding-top: 10px;
	font-size: 1.1rem;
}

.profile-players .bmd-form-group {
	padding-top: 0px;
}

.profile-players .subtitle {
	padding: 5px 0;
}

.profile-players .subtitle .form-control[readonly] {
	background-color: transparent;
}

.profile-players .form-control {
	font-size: 0.9rem;
}

.profile-players .form-control option {
	font-size: 0.9rem;
	text-align: center;
}

.profile-players .form-control:focus,
.profile-players .form-control:active {
	outline: none;
	box-shadow: none;
	border: none;
}

.profile-players .form-control-file:active,
.profile-players .form-control-file:focus {
	outline: none;
}

.profile-players .btn-wrapper {
	padding-top: 30px;
}

/*----------  RESERVAS: MODAL LOGIN JUGADORES  ----------*/
.modal {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	opacity: 1;
	pointer-events: none;
	width: 100vw;
	height: 100vh;
	background: rgba(10, 12, 16, 0.9);
}

.modal-dialog {
	max-width: 780px;
}

.modal-content {
	max-width: 100%;
	height: auto;
	border: 1px solid var(--border-color-2);
	background-color: var(--card-bg);
	border-radius: 12px;
	padding: 15px 35px;
	color: var(--text-main);
}

.modal-content img {
	width: 40%;
	max-width: 160px;
	margin: 10px auto;
	display: block;
}

.contenedor-tabs {
	list-style: none;
	padding: 0;
	margin: 0 0 40px 0;
}

.contenedor-tabs:after {
	content: "";
	display: table;
	clear: both;
}

.contenedor-tabs li a {
	display: block;
	text-decoration: none;
	padding: 10px 0;
	background: rgba(160, 179, 176, 0.1);
	color: var(--primary);
	transition: all .2s ease-out;
	font-size: 1rem;
	float: left;
	width: 50%;
	text-align: center;
	cursor: pointer;
}

.contenedor-tabs li a:hover {
	background-color: var(--primary);
	color: #fff;
}

.contenedor-tabs .active a {
	background-color: var(--primary);
	color: #fff;
	outline: none;
}

.contenido-tab p {
	font-size: 1.3rem;
}

#ModalLoginJugador span.inner-loader {
	display: none;
	color: red;
}

/*----------  RESPONSIVES  ----------*/
@media (max-width: 767px) {
	.nav-lateral {
		width: 100%;
		overflow: hidden;
		display: none;
		background-image: none;
	}

	.nav-lateral.active {
		display: block;
		z-index: 9999;
	}

	.nav-lateral-bg {
		width: 100%;
		height: 100%;
		background-color: rgba(3, 3, 3, .4);
		position: relative;
		display: block;
		z-index: 2;
	}

	.nav-lateral-content {
		position: absolute;
		left: 0;
		top: 0;
		z-index: 3;
		transform: translateX(-400px);
		transition: all .3s ease-in-out;
		background-color: var(--bg-dark);
	}

	.nav-lateral.active .nav-lateral-content {
		transform: translateX(0);
	}

	.nav-lateral-avatar i {
		height: 50px;
		width: 50px;
		line-height: 50px;
		color: #FFF;
		cursor: pointer;
		font-size: 25px;
		position: absolute;
		top: 5px;
		right: 0;
		text-align: center;
		display: block;
		transition: all .2s ease-out;
	}

	.nav-lateral-avatar i:hover {
		color: var(--primary);
	}

	.page-content {
		padding-left: 0;
	}

	.table .btn {
		margin-bottom: 0;
		font-size: 2.4rem;
	}

}

@media (min-width: 768px) {
	.nav-lateral.active {
		transform: translateX(-400px);
	}

	.page-content.active {
		padding-left: 0;
	}
}