/**
 * Sinema Indonesia - Public CSS (Cinema Dark Theme)
 *
 * @package SinemaIndonesia
 * @since 1.0.0
 */

/* ============================================
   CINEMA DARK THEME
   ============================================ */

/* Auth Wrapper - Cinema Background */
.sinema-auth-wrapper {
	padding: 40px 0;
	min-height: 100vh;
	background: linear-gradient(135deg, #0f0c29 0%, #302b63 50%, #24243e 100%);
	position: relative;
	overflow: hidden;
}

/* Animated stars effect (optional) */
.sinema-auth-wrapper::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-image: 
		radial-gradient(2px 2px at 20px 30px, rgba(255,255,255,0.3), transparent),
		radial-gradient(2px 2px at 60px 70px, rgba(255,255,255,0.2), transparent),
		radial-gradient(1px 1px at 50px 50px, rgba(255,255,255,0.3), transparent),
		radial-gradient(1px 1px at 130px 80px, rgba(255,255,255,0.2), transparent),
		radial-gradient(2px 2px at 90px 10px, rgba(255,255,255,0.3), transparent);
	background-size: 200px 200px;
	background-repeat: repeat;
	opacity: 0.5;
	animation: twinkle 3s ease-in-out infinite;
}

@keyframes twinkle {
	0%, 100% { opacity: 0.5; }
	50% { opacity: 0.8; }
}

/* Auth Card - Dark Theater */
.sinema-auth-card {
	border: none;
	border-radius: 20px;
	overflow: hidden;
	background: rgba(26, 26, 46, 0.95);
	backdrop-filter: blur(10px);
	box-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
	position: relative;
	z-index: 1;
}

.sinema-auth-card::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background: linear-gradient(90deg, #00d9ff 0%, #9d4edd 100%);
}

.sinema-auth-card .card-body {
	background: transparent;
	color: #eaeaea;
}

/* Header */
.sinema-auth-card h2 {
	color: #ffffff;
	font-weight: 700;
	text-shadow: 0 2px 10px rgba(0, 217, 255, 0.3);
}

.sinema-auth-card .text-muted {
	color: #b8b8b8 !important;
}

/* Form Styles */
.sinema-auth-card .form-label {
	font-weight: 600;
	color: #eaeaea;
	margin-bottom: 0.5rem;
	font-size: 0.95rem;
}

.sinema-auth-card .form-control,
.sinema-auth-card .form-select {
	background: #16213e;
	border: 2px solid #3d3d5c;
	border-radius: 10px;
	padding: 0.75rem 1rem;
	font-size: 1rem;
	color: #eaeaea;
	transition: all 0.3s ease;
}

.sinema-auth-card .form-control::placeholder {
	color: #6b6b8a;
}

.sinema-auth-card .form-control:focus,
.sinema-auth-card .form-select:focus {
	background: #1a2847;
	border-color: #00d9ff;
	box-shadow: 0 0 0 0.2rem rgba(0, 217, 255, 0.25), 0 0 20px rgba(0, 217, 255, 0.2);
	color: #ffffff;
}

.sinema-auth-card .input-group-text {
	background: #16213e;
	border: 2px solid #3d3d5c;
	border-right: none;
	color: #00d9ff;
	font-size: 1.2rem;
}

.sinema-auth-card .form-text {
	color: #8a8a9f;
	font-size: 0.85rem;
}

/* Buttons - Neon Cinema Style */
.sinema-auth-card .btn {
	border-radius: 10px;
	padding: 0.75rem 1.5rem;
	font-weight: 600;
	font-size: 1rem;
	transition: all 0.3s ease;
	position: relative;
	overflow: hidden;
}

.sinema-auth-card .btn-primary {
	background: linear-gradient(135deg, #00d9ff 0%, #00a1cc 100%);
	border: none;
	color: #0a0a0a;
	box-shadow: 0 4px 15px rgba(0, 217, 255, 0.3);
}

.sinema-auth-card .btn-primary:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 25px rgba(0, 217, 255, 0.5), 0 0 30px rgba(0, 217, 255, 0.3);
	background: linear-gradient(135deg, #00f0ff 0%, #00d9ff 100%);
}

.sinema-auth-card .btn-success {
	background: linear-gradient(135deg, #06ffa5 0%, #00cc83 100%);
	border: none;
	color: #0a0a0a;
	box-shadow: 0 4px 15px rgba(6, 255, 165, 0.3);
}

.sinema-auth-card .btn-success:hover {
	transform: translateY(-2px);
	box-shadow: 0 6px 25px rgba(6, 255, 165, 0.5), 0 0 30px rgba(6, 255, 165, 0.3);
	background: linear-gradient(135deg, #00ffb3 0%, #06ffa5 100%);
}

.sinema-auth-card .btn-outline-secondary {
	background: transparent;
	border: 2px solid #3d3d5c;
	color: #b8b8b8;
}

.sinema-auth-card .btn-outline-secondary:hover {
	background: #16213e;
	border-color: #00d9ff;
	color: #00d9ff;
	transform: translateY(-1px);
}

.sinema-auth-card .btn-link {
	color: #00d9ff;
	text-decoration: none;
}

.sinema-auth-card .btn-link:hover {
	color: #00f0ff;
	text-shadow: 0 0 10px rgba(0, 217, 255, 0.5);
}

/* Button Loading State */
.sinema-auth-card .btn:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

/* Alert Styles - Cinema Dark */
.sinema-auth-card .alert {
	border-radius: 10px;
	border: none;
	padding: 1rem;
	margin-bottom: 1.5rem;
	border-left: 4px solid;
	backdrop-filter: blur(5px);
}

.sinema-auth-card .alert-success {
	background: rgba(6, 255, 165, 0.15);
	color: #06ffa5;
	border-left-color: #06ffa5;
	box-shadow: 0 0 20px rgba(6, 255, 165, 0.1);
}

.sinema-auth-card .alert-danger {
	background: rgba(255, 0, 110, 0.15);
	color: #ff006e;
	border-left-color: #ff006e;
	box-shadow: 0 0 20px rgba(255, 0, 110, 0.1);
}

.sinema-auth-card .alert-info {
	background: rgba(0, 217, 255, 0.15);
	color: #00d9ff;
	border-left-color: #00d9ff;
	box-shadow: 0 0 20px rgba(0, 217, 255, 0.1);
}

.sinema-auth-card .alert i {
	text-shadow: 0 0 10px currentColor;
}

/* Timer - Neon Style */
#otp-timer, #login-otp-timer {
	font-size: 1.2rem;
	color: #00d9ff;
	font-weight: 700;
	text-shadow: 0 0 10px rgba(0, 217, 255, 0.5);
}

/* Links - Neon Cyan */
.sinema-auth-card a {
	color: #00d9ff;
	text-decoration: none;
	transition: all 0.3s ease;
	font-weight: 600;
}

.sinema-auth-card a:hover {
	color: #00f0ff;
	text-shadow: 0 0 10px rgba(0, 217, 255, 0.5);
}

/* Divider */
.sinema-auth-card hr {
	border-color: #3d3d5c;
	opacity: 0.3;
}

/* Info Card - Dark */
.sinema-auth-wrapper .card.bg-light {
	background: rgba(26, 26, 46, 0.5) !important;
	border: 1px solid #3d3d5c;
	backdrop-filter: blur(5px);
}

.sinema-auth-wrapper .card.bg-light .card-body {
	background: transparent;
}

.sinema-auth-wrapper .card.bg-light small {
	color: #b8b8b8;
}

.sinema-auth-wrapper .card.bg-light i {
	color: #00d9ff;
}

/* Mobile Responsive */
@media (max-width: 576px) {
	.sinema-auth-wrapper {
		padding: 20px 15px;
	}
	
	.sinema-auth-card .card-body {
		padding: 2rem 1.5rem !important;
	}
	
	.sinema-auth-card h2 {
		font-size: 1.5rem;
	}
	
	.sinema-auth-card .btn {
		font-size: 0.95rem;
		padding: 0.7rem 1.2rem;
	}
}

/* Animations */
@keyframes fadeIn {
	from {
		opacity: 0;
		transform: translateY(30px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@keyframes glow {
	0%, 100% {
		box-shadow: 0 0 20px rgba(0, 217, 255, 0.3);
	}
	50% {
		box-shadow: 0 0 30px rgba(0, 217, 255, 0.6);
	}
}

.sinema-auth-card {
	animation: fadeIn 0.6s ease;
}

/* Loading Spinner - Neon */
.spinner-border {
	border-color: rgba(0, 217, 255, 0.3);
	border-right-color: #00d9ff;
}

.spinner-border-sm {
	width: 1rem;
	height: 1rem;
}

/* Invalid Feedback - Cinema Red */
.invalid-feedback {
	display: none;
	font-size: 0.875rem;
	color: #ff006e;
	margin-top: 0.25rem;
	text-shadow: 0 0 5px rgba(255, 0, 110, 0.3);
}

.form-control.is-invalid {
	border-color: #ff006e;
}

.form-control.is-invalid:focus {
	box-shadow: 0 0 0 0.2rem rgba(255, 0, 110, 0.25);
}

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

/* Required Star */
.text-danger {
	color: #ff006e !important;
	text-shadow: 0 0 5px rgba(255, 0, 110, 0.3);
}

/* Cinema Film Strip Effect (Optional Footer) */
.sinema-auth-wrapper::after {
	content: '';
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	height: 20px;
	background: repeating-linear-gradient(
		90deg,
		#1a1a2e 0px,
		#1a1a2e 30px,
		#3d3d5c 30px,
		#3d3d5c 35px
	);
	opacity: 0.3;
	z-index: 0;
}