
:root {
	--color-primary: #0a0621;
	--color-secondary: #ff0000;
	--color-gray-200: #e5e7eb;
	--color-gray-400: #9ca3af;
	--color-gray-500: #6b7280;
	--color-gray-600: #4b5563;
	--color-gray-700: #374151;
	--color-gray-800: #1f2937;
	--color-white: #ffffff;
	--color-red-700: #b91c1c;
}

* {
	box-sizing: border-box;
}

body {
	font-family: 'Inter', sans-serif;
	overflow: hidden;
	min-height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
	margin: 0;
}

.video-background {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: -1;
	object-fit: cover;
	opacity: 0.8;
}

.overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, rgba(255, 255, 255, 0.574) 0%, rgba(19, 25, 195, 0.271) 90%);
	z-index: -1;
}

.gradient-border {
	position: relative;
	background-color: var(--color-primary);
	color: var(--color-white);
	padding: 1.5rem 2rem;
	text-align: center;
}

.gradient-border::after {
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 4px;
	background: linear-gradient(90deg, #0a0621 0%, #0a0621 50%, #ff0000 50%, #ff0000 100%);
}

.login-container {
	backdrop-filter: blur(8px);
	background: rgba(255, 255, 255, 0.9);
	border-radius: 1rem;
	box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
	overflow: hidden;
	width: 100%;
	max-width: 28rem;
	animation: fadeInUp 0.6s ease-out forwards;
	box-sizing: border-box;
}

.input-field {
	transition: all 0.3s ease;
	box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.1);
	background: rgba(255, 255, 255, 0.9);
	width: 100%;
	border: 1px solid var(--color-gray-200);
	border-radius: 0.5rem;
	box-sizing: border-box;
	/* Esto asegura que el padding no se sume al ancho total */
}

.input-field:focus {
	box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.3);
	outline: none;
	border: 2px solid var(--color-primary);
	border-color: var(--color-primary);
}

.input-field-email {
	padding-left: 2.5rem;
	padding-right: 1rem;
	padding-top: 0.75rem;
	padding-bottom: 0.75rem;
}

.input-field-password {
	padding-left: 2.5rem;
	padding-right: 2.5rem;
	padding-top: 0.75rem;
	padding-bottom: 0.75rem;
}

.btn-primary {
	background: linear-gradient(135deg, #0a0621 0%, #1a1446 100%);
	transition: all 0.3s ease;
	color: var(--color-white);
	font-weight: 700;
	border-radius: 0.5rem;
	box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
	width: 100%;
	padding-top: 0.75rem;
	padding-bottom: 0.75rem;
}

.btn-primary:hover {
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(10, 6, 33, 0.4);
}

.btn-secondary {
	background: linear-gradient(135deg, #ff0000 0%, #e53e3e 100%);
	transition: all 0.3s ease;
	color: var(--color-white);
	font-weight: 500;
	border-radius: 0.5rem;
	flex: 1;
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
}

.btn-secondary:hover {
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(239, 68, 68, 0.5);
}

.modal-glass {
	backdrop-filter: blur(12px);
	background: rgba(255, 255, 255, 0.95);
	border: 1px solid rgba(255, 0, 0, 0.3);
	box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.37);
	border-radius: 0.75rem;
	box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
	padding: 1.5rem;
	width: 100%;
	max-width: 28rem;
	margin-left: 1rem;
	margin-right: 1rem;
}

.password-toggle {
	right: 12px;
	top: 50%;
	transform: translateY(-50%);
	cursor: pointer;
}

@keyframes fadeInUp {
	from {
		opacity: 0;
		transform: translateY(20px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.animated-container {
	animation: fadeInUp 0.6s ease-out forwards;
}

.flash-message {
	padding: 1rem;
	margin-bottom: 1rem;
	border-radius: 0.5rem;
	font-weight: 500;
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.flash-error {
	background-color: #fee2e2;
	color: #b91c1c;
	border: 1px solid #fecaca;
}

.flash-success {
	background-color: #dcfce7;
	color: #15803d;
	border: 1px solid #bbf7d0;
}

.flash-info {
	background-color: #e0f2fe;
	color: #0369a1;
	border: 1px solid #bae6fd;
}

.flash-warning {
	background-color: #fef9c3;
	color: #a16207;
	border: 1px solid #fef08a;
}

.flash-close {
	background: none;
	border: none;
	font-size: 1.2rem;
	cursor: pointer;
	color: inherit;
	margin-left: 1rem;
}

/* Equivalentes de las clases de Tailwind */
.content-wrapper {
	padding: 1.5rem;
	box-sizing: border-box;
}

.flex {
	display: flex;
}

.flex-center {
	display: flex;
	justify-content: center;
}

.flex-between {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

.flex-end {
	display: flex;
	justify-content: flex-end;
}

.flex-row {
	display: flex;
	flex-direction: row;
}

.space-x {
	display: flex;
	gap: 0.75rem;
}

.mb-4 {
	margin-bottom: 1rem;
}

.mb-5 {
	margin-bottom: 1.25rem;
}

.mb-6 {
	margin-bottom: 1.5rem;
}

.mt-1 {
	margin-top: 0.25rem;
}

.mr-2 {
	margin-right: 0.5rem;
}

.logo-img {
    width: 100%;
    height: auto;
}

.title-large {
	font-size: 1.5rem;
	font-weight: 700;
}

.title-medium {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--color-gray-800);
}

.text-center {
	text-align: center;
}

.text-small {
	font-size: 0.875rem;
}

.text-muted {
	opacity: 0.8;
}

.text-gray {
	color: var(--color-gray-600);
}

.text-dark {
	color: var(--color-gray-800);
}

.text-light-gray {
	color: var(--color-gray-400);
}

.text-secondary {
	color: var(--color-secondary);
}

.text-secondary:hover {
	color: var(--color-red-700);
}

.font-medium {
	font-weight: 500;
}

.space-y-2 {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
	width: 100%;
	box-sizing: border-box;
}

.space-y-4 {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	width: 100%;
	box-sizing: border-box;
}

.space-y-5 {
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
	width: 100%;
	box-sizing: border-box;
}

.form-label {
	display: block;
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--color-gray-700);
}

.relative {
	position: relative;
	width: 100%;
}

.icon-left {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	padding-left: 0.75rem;
	display: flex;
	align-items: center;
	pointer-events: none;
}

.icon-right {
	position: absolute;
	top: 0;
	bottom: 0;
	right: 0;
	padding-right: 0.75rem;
	display: flex;
	align-items: center;
	cursor: pointer;
	color: var(--color-gray-400);
}

.icon-right:hover {
	color: var(--color-gray-600);
}

.modal {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 50;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: rgba(0, 0, 0, 0.5);
}

.hidden {
	display: none;
}

/* Mensajes de notificación */
.mensaje-notificacion {
	padding: 1rem;
	border-radius: 0.5rem;
	margin-bottom: 1.5rem;
	display: flex;
	align-items: center;
	gap: 0.75rem;
	font-size: 0.875rem;
	font-weight: 500;
	transition: opacity 0.3s ease;
}

.mensaje-notificacion i {
	font-size: 1.25rem;
}

.mensaje-success {
	background-color: #d1fae5;
	color: #065f46;
	border: 1px solid #10b981;
}

.mensaje-error {
	background-color: #fee2e2;
	color: #991b1b;
	border: 1px solid #ef4444;
}

.mensaje-info {
	background-color: #dbeafe;
	color: #1e40af;
	border: 1px solid #3b82f6;
}

/* Media queries para responsividad */
@media (max-width: 480px) {
	.login-container {
		max-width: 100%;
		margin: 0 1rem;
	}

	.content-wrapper {
		padding: 1rem;
	}

	.gradient-border {
		padding: 1rem 1.5rem;
	}
}
