:root {
	--primary-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	--secondary-gradient: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);
	--success-gradient: linear-gradient(135deg, #4facfe 0%, #00f2fe 100%);
	--shadow-light: 0 4px 20px rgba(0, 0, 0, 0.08);
	--shadow-medium: 0 8px 30px rgba(0, 0, 0, 0.12);
	--border-radius: 16px;
	--border-radius-lg: 24px;
}
* {
	font-family: "Poppins", sans-serif;
}
body {
	background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
}
.wrapper,
body,
html {
	min-height: 100%;
}
.wrapper {
	position: relative;
}
.wrapper .content-wrapper {
	min-height: calc(100vh - calc(3.5rem + 1px) - calc(3.5rem + 1px));
}
.brand-image {
	margin-top: -0.5rem;
	margin-right: 0.2rem;
	height: 50px;
}
.img-circle {
	border-radius: 50%;
}
.navbar {
	background: rgba(255, 255, 255, 0.95) !important;
	backdrop-filter: blur(10px);
	border-bottom: 1px solid rgba(255, 255, 255, 0.2);
	padding: 0.5rem 0;
}
.navbar-brand {
	font-weight: 700;
	font-size: 1.5rem;
	background: var(--primary-gradient);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}
.nav-link {
	font-weight: 500;
	transition: all 0.3s ease;
	position: relative;
}
.nav-link:hover {
	color: #667eea !important;
	transform: translateY(-2px);
}
.breadcrumb-section {
	background: rgba(255, 255, 255, 0.9);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}
.breadcrumb-item a {
	color: #667eea;
	text-decoration: none;
	font-weight: 500;
}
.hero-section {
	background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
	color: white;
	padding: 60px 0 80px;
}
.search-filter-section {
	background: rgba(255, 255, 255, 0.95);
	backdrop-filter: blur(20px);
	border-radius: var(--border-radius-lg);
	box-shadow: var(--shadow-medium);
	margin-top: -60px;
	position: relative;
	z-index: 10;
	padding: 2rem;
}
.product-main-card {
	background: rgba(255, 255, 255, 0.95);
	backdrop-filter: blur(20px);
	border-radius: var(--border-radius-lg);
	box-shadow: var(--shadow-medium);
	overflow: hidden;
	position: relative;
}
.product-image-section {
	padding: 2rem;
	position: relative;
	overflow: hidden;
}
.product-image {
	width: 100%;
	height: auto;
	object-fit: cover;
	transition: transform 0.3s ease;
}
.product-image:hover {
	transform: scale(1.02);
}
.status-badge {
	position: absolute;
	top: 1.5rem;
	right: 1.5rem;
	padding: 0.5rem 1rem;
	border-radius: 50px;
	font-weight: 600;
	font-size: 0.9rem;
	box-shadow: var(--shadow-light);
}
.status-available {
	background: var(--success-gradient);
	color: white;
}
.status-unavailable {
	background: var(--secondary-gradient);
	color: white;
}
.product-content-section {
	padding: 2rem;
}
.product-title {
	font-size: 2rem;
	font-weight: 700;
	color: #2d3748;
	margin-bottom: 1rem;
}
.price-display {
	background: var(--primary-gradient);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
	font-size: 2.5rem;
	font-weight: 700;
	margin-bottom: 1.5rem;
}
.detail-item {
	display: flex;
	align-items: center;
	margin-bottom: 1rem;
	padding: 0.75rem;
	background: rgba(102, 126, 234, 0.05);
	border-radius: var(--border-radius);
}
.detail-icon {
	color: #667eea;
	margin-right: 1rem;
	font-size: 1.2rem;
	width: 24px;
	text-align: center;
}
.description-card {
	background: rgba(255, 255, 255, 0.7);
	border-radius: var(--border-radius);
	padding: 1.5rem;
	margin-bottom: 2rem;
	border: 1px solid rgba(102, 126, 234, 0.1);
}
.btn-primary-custom {
	background: var(--primary-gradient);
	border: none;
	border-radius: 50px;
	font-weight: 600;
	font-size: 1.1rem;
	box-shadow: var(--shadow-light);
	transition: all 0.3s ease;
	position: relative;
	overflow: hidden;
	color: white;
	text-decoration: none;
	display: inline-block;
	text-align: center;
}
.btn-primary-custom::before {
	content: "";
	position: absolute;
	top: 0;
	left: -100%;
	width: 100%;
	height: 100%;
	background: linear-gradient(
		90deg,
		transparent,
		rgba(255, 255, 255, 0.3),
		transparent
	);
	transition: left 0.5s;
}
.btn-primary-custom:hover {
	transform: translateY(-3px);
	box-shadow: 0 12px 40px rgba(102, 126, 234, 0.3);
	color: white;
	text-decoration: none;
}
.btn-primary-custom:hover::before {
	left: 100%;
}
.btn-outline-custom {
	border: 2px solid #667eea;
	color: #667eea;
	border-radius: 50px;
	font-weight: 600;
	background: transparent;
	transition: all 0.3s ease;
	text-decoration: none;
	display: inline-block;
	text-align: center;
}
.btn-outline-custom:hover {
	background: var(--primary-gradient);
	border-color: transparent;
	color: white;
	transform: translateY(-2px);
	text-decoration: none;
}
.btn-disabled {
	background: linear-gradient(135deg, #a0a0a0 0%, #757575 100%);
	color: white;
	border: none;
	border-radius: 50px;
	font-weight: 600;
	cursor: not-allowed;
	white-space: normal;
	word-wrap: break-word;
	line-height: 1.2;
	min-height: 48px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
}
.related-section {
	backdrop-filter: blur(10px);
}
.product-card {
	background: rgba(255, 255, 255, 0.95);
	backdrop-filter: blur(20px);
	border-radius: var(--border-radius);
	box-shadow: var(--shadow-light);
	border: 1px solid rgba(255, 255, 255, 0.2);
	transition: all 0.3s ease;
	overflow: hidden;
}
.product-card:hover {
	transform: translateY(-8px);
	box-shadow: var(--shadow-medium);
}
.product-card-image {
	height: 200px;
	object-fit: cover;
	transition: transform 0.3s ease;
}
.product-card:hover .product-card-image {
	transform: scale(1.1);
}
.product-card-body {
	padding: 1.5rem;
}
.product-card-title {
	font-weight: 600;
	color: #2d3748;
	margin-bottom: 0.5rem;
}
.text-primary-custom {
	color: #667eea;
}
.alert {
	border-radius: var(--border-radius);
	border: none;
	padding: 1rem 1.5rem;
	margin-bottom: 2rem;
	font-weight: 500;
}
.alert-success {
	background: rgba(76, 175, 80, 0.1);
	color: #2e7d32;
	border-left: 4px solid #4caf50;
}
.alert-danger {
	background: rgba(244, 67, 54, 0.1);
	color: #c62828;
	border-left: 4px solid #f44336;
}
.input-group > .custom-file {
	display: -ms-flexbox;
	display: flex;
	-ms-flex-align: center;
	align-items: center;
}

.custom-file-input {
	position: relative;
	z-index: 2;
	width: 100%;
	height: calc(2.25rem + 2px);
	margin: 0;
	overflow: hidden;
	opacity: 0;
}

.custom-file-input:focus ~ .custom-file-label {
	border-color: #80bdff;
	box-shadow: none;
}

.custom-file-input[disabled] ~ .custom-file-label,
.custom-file-input:disabled ~ .custom-file-label {
	background-color: #e9ecef;
}

.custom-file-input:lang(en) ~ .custom-file-label::after {
	content: "Browse";
}

.custom-file-input ~ .custom-file-label[data-browse]::after {
	content: attr(data-browse);
}

.custom-file-label {
	position: absolute;
	top: 0;
	right: 0;
	left: 0;
	z-index: 1;
	height: calc(2.25rem + 2px);
	padding: 0.375rem 0.75rem;
	overflow: hidden;
	font-weight: 400;
	line-height: 1.5;
	color: #495057;
	background-color: #fff;
	border: 1px solid #ced4da;
	border-radius: 0.25rem;
	box-shadow: none;
}

.custom-file-label::after {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	z-index: 3;
	display: block;
	height: 2.25rem;
	padding: 0.375rem 0.75rem;
	line-height: 1.5;
	color: #495057;
	content: "Browse";
	background-color: #e9ecef;
	border-left: inherit;
	border-radius: 0 0.25rem 0.25rem 0;
}
.table {
	width: 100%;
	margin-bottom: 1rem;
	color: #212529;
	background-color: transparent;
}
.table td,
.table th {
	padding: 0.75rem;
	vertical-align: top;
	border-top: 1px solid #dee2e6;
}
.table thead th {
	vertical-align: bottom;
	border-bottom: 2px solid #dee2e6;
}
.table tbody + tbody {
	border-top: 2px solid #dee2e6;
}
.table-sm td,
.table-sm th {
	padding: 0.3rem;
}
.table-bordered {
	border: 1px solid #dee2e6;
}
.table-bordered td,
.table-bordered th {
	border: 1px solid #dee2e6;
}
.table-bordered thead td,
.table-bordered thead th {
	border-bottom-width: 2px;
}
.footer {
	background: linear-gradient(135deg, #2d3748 0%, #4a5568 100%);
	color: white;
	padding: 1.5rem 0;
	margin-top: auto;
}
.fade-in {
	animation: fadeIn 0.6s ease-in;
}
@keyframes fadeIn {
	from {
		opacity: 0;
		transform: translateY(20px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}
.slide-in-up {
	animation: slideInUp 0.6s ease-out;
}
.pagination .page-item .page-link {
	border-radius: 0.75rem;
	margin: 0 2px;
	border: none;
	background: rgba(255, 255, 255, 0.8);
	color: #667eea;
	font-weight: 500;
}

.pagination .page-item.active .page-link {
	background: var(--primary-gradient);
	color: white;
}

.pagination .page-link:hover {
	background: rgba(102, 126, 234, 0.1);
	color: #667eea;
}
@keyframes slideInUp {
	from {
		opacity: 0;
		transform: translateY(40px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}
@media (max-width: 768px) {
	.product-title {
		font-size: 1.5rem;
	}

	.price-display {
		font-size: 2rem;
	}

	.product-content-section {
		padding: 1.5rem;
	}

	.product-image {
		height: 250px;
	}

	.product-main-card {
		flex-direction: column;
	}

	.product-image-section,
	.product-content-section {
		width: 100% !important;
	}
}
@media (max-width: 576px) {
	.product-image {
		height: 200px;
	}

	.product-content-section {
		padding: 1rem;
	}
}
.loading-shimmer {
	background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
	background-size: 200% 100%;
	animation: shimmer 2s infinite;
}
@keyframes shimmer {
	0% {
		background-position: -200% 0;
	}
	100% {
		background-position: 200% 0;
	}
}
