/**
 * Premium mini cart slide-out drawer.
 */

.nwui-mini-cart {
	position: fixed;
	inset: 0;
	z-index: 99995;
	pointer-events: none;
	visibility: hidden;
}

.nwui-mini-cart.is-open {
	pointer-events: auto;
	visibility: visible;
}

.nwui-mini-cart-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(45, 52, 54, 0.45);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	opacity: 0;
	transition: opacity var(--nwui-speed) ease;
}

.nwui-mini-cart.is-open .nwui-mini-cart-backdrop {
	opacity: 1;
}

.nwui-mini-cart-panel {
	position: absolute;
	top: 0;
	right: 0;
	width: 100%;
	max-width: 420px;
	height: 100%;
	display: flex;
	flex-direction: column;
	background: var(--nwui-card);
	border-radius: 0;
	box-shadow: -12px 0 40px rgba(163, 177, 198, 0.4);
	transform: translateX(100%);
	transition: transform 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
	overflow: hidden;
}

.nwui-mini-cart.is-open .nwui-mini-cart-panel {
	transform: translateX(0);
}

.nwui-mini-cart-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 22px 24px;
	border-bottom: 1px solid var(--nwui-bg);
	flex-shrink: 0;
}

.nwui-mini-cart-title-wrap {
	display: flex;
	align-items: center;
	gap: 12px;
}

.nwui-mini-cart-icon {
	width: 44px;
	height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--nwui-green-light, #DCFCE7);
	box-shadow: var(--nwui-shadow-inset);
	color: var(--nwui-primary);
}

.nwui-mini-cart-header h2 {
	font-family: var(--nwui-font-heading);
	font-size: 1.15rem;
	font-weight: 700;
	margin: 0;
	color: var(--nwui-text);
}

.nwui-mini-cart-count-badge {
	min-width: 26px;
	height: 26px;
	padding: 0 8px;
	border-radius: var(--nwui-radius-pill);
	background: var(--nwui-primary);
	color: #fff;
	font-size: 0.75rem;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
}

.nwui-mini-cart-close {
	width: 44px;
	height: 44px;
	min-width: 44px;
	min-height: 44px;
	border: none;
	border-radius: 50%;
	background: var(--nwui-card);
	box-shadow: var(--nwui-shadow-raised);
	color: var(--nwui-icon);
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: transform var(--nwui-speed) ease, color var(--nwui-speed) ease, box-shadow var(--nwui-speed) ease;
	padding: 0;
}

.nwui-mini-cart-close:hover,
.nwui-mini-cart-close:focus {
	color: var(--nwui-primary);
	background: var(--nwui-card) !important;
	outline: none !important;
	transform: rotate(90deg);
	box-shadow: 0 4px 14px var(--nwui-green-glow);
}

/* Success banner */
.nwui-mini-cart-success {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 12px 24px;
	background: linear-gradient(135deg, rgba(34, 197, 94, 0.12), rgba(34, 197, 94, 0.04));
	border-bottom: 1px solid rgba(34, 197, 94, 0.15);
	opacity: 0;
	max-height: 0;
	overflow: hidden;
	transition: all 0.35s ease;
}

.nwui-mini-cart.show-success .nwui-mini-cart-success {
	opacity: 1;
	max-height: 60px;
	padding: 12px 24px;
}

.nwui-mini-cart-success .nwui-success-icon {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--nwui-primary);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.85rem;
	font-weight: 700;
	animation: nwui-pop 0.4s ease;
}

.nwui-success-text {
	font-family: var(--nwui-font-button);
	font-weight: 600;
	color: var(--nwui-green-dark);
	font-size: 0.9rem;
}

@keyframes nwui-pop {
	0% { transform: scale(0); }
	60% { transform: scale(1.2); }
	100% { transform: scale(1); }
}

.nwui-mini-cart-body {
	flex: 1;
	overflow-y: auto;
	padding: 20px;
	-webkit-overflow-scrolling: touch;
}

.nwui-mini-cart-items {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

/* Cart item card */
.nwui-mini-cart-item {
	display: grid;
	grid-template-columns: 72px 1fr 36px;
	grid-template-rows: auto auto;
	gap: 0 14px;
	align-items: center;
	padding: 16px;
	border-radius: var(--nwui-radius-card);
	background: var(--nwui-card);
	box-shadow: var(--nwui-shadow-raised);
	position: relative;
	transition: transform var(--nwui-speed) ease, box-shadow var(--nwui-speed) ease;
}

.nwui-mini-cart-item.nwui-item-new {
	animation: nwui-slide-in-item 0.5s cubic-bezier(0.25, 0.8, 0.25, 1);
	box-shadow: var(--nwui-shadow-raised), 0 0 0 2px var(--nwui-primary);
}

@keyframes nwui-slide-in-item {
	from { opacity: 0; transform: translateX(40px); }
	to { opacity: 1; transform: translateX(0); }
}

.nwui-mini-item-thumb {
	grid-row: 1 / 3;
	grid-column: 1;
	width: 72px;
	height: 72px;
	border-radius: var(--nwui-radius-thumb);
	overflow: hidden;
	box-shadow: var(--nwui-shadow-inset);
	flex-shrink: 0;
}

.nwui-mini-item-thumb img {
	width: 72px;
	height: 72px;
	object-fit: cover;
	display: block;
}

.nwui-mini-item-info {
	grid-column: 2;
	grid-row: 1;
	min-width: 0;
	align-self: end;
	padding-bottom: 6px;
}

.nwui-mini-item-name {
	font-family: var(--nwui-font-heading);
	font-size: 0.9rem;
	font-weight: 600;
	margin: 0;
	line-height: 1.35;
}

.nwui-mini-item-name a {
	color: var(--nwui-text);
	text-decoration: none;
}

.nwui-mini-item-name a:hover {
	color: var(--nwui-primary);
	background: transparent !important;
}

.nwui-mini-item-meta {
	grid-column: 2;
	grid-row: 2;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	align-self: start;
}

.nwui-mini-item-qty-wrap {
	display: flex;
	align-items: center;
}

.nwui-mini-item-qty-wrap .nwui-qty-wrapper {
	border-radius: var(--nwui-radius-pill);
}

.nwui-mini-item-qty-wrap .nwui-qty-btn {
	width: 32px;
	height: 32px;
	font-size: 1rem;
}

.nwui-mini-item-qty-wrap .nwui-qty-input {
	width: 36px;
	height: 32px;
	font-size: 0.85rem;
}

.nwui-mini-item-price {
	font-family: var(--nwui-font-price);
	font-weight: 700;
	font-size: 0.92rem;
	color: var(--nwui-primary);
	white-space: nowrap;
}

.nwui-mini-item-remove {
	grid-column: 3;
	grid-row: 1 / 3;
	width: 36px;
	height: 36px;
	min-width: 36px;
	min-height: 36px;
	border: none;
	border-radius: 50%;
	background: var(--nwui-bg);
	box-shadow: var(--nwui-shadow-raised);
	color: var(--nwui-text-muted);
	font-size: 1.25rem;
	line-height: 1;
	cursor: pointer;
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	transition: all 0.3s ease;
	align-self: center;
}

.nwui-mini-item-remove:hover {
	background: var(--nwui-green-light);
	color: var(--nwui-primary);
	box-shadow: 0 4px 12px var(--nwui-green-glow);
	transform: scale(1.05);
}

/* Empty state */
.nwui-mini-cart-empty {
	text-align: center;
	padding: 36px 20px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	border-radius: var(--nwui-radius-card);
}

.nwui-empty-icon {
	color: var(--nwui-text-muted);
	opacity: 0.5;
}

.nwui-mini-cart-empty p {
	margin: 0;
	color: var(--nwui-text-muted);
}

/* Footer */
.nwui-mini-cart-footer {
	padding: 22px 24px;
	border-top: 1px solid var(--nwui-bg);
	background: var(--nwui-card);
	flex-shrink: 0;
	box-shadow: 0 -4px 20px rgba(163, 177, 198, 0.15);
}

.nwui-mini-cart-subtotal {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 16px;
	padding: 14px 18px;
	border-radius: var(--nwui-radius-input);
	background: var(--nwui-bg);
	box-shadow: var(--nwui-shadow-inset);
}

.nwui-mini-cart-subtotal span {
	font-size: 0.9rem;
	color: var(--nwui-text-muted);
}

.nwui-mini-cart-subtotal-value {
	font-family: var(--nwui-font-price);
	font-size: 1.15rem;
	font-weight: 700;
	color: var(--nwui-primary);
}

.nwui-mini-cart-actions {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.nwui-mini-cart-actions .nwui-btn {
	width: 100%;
	text-align: center;
	text-decoration: none;
	border-radius: var(--nwui-radius-btn);
}

.nwui-btn-checkout {
	background: linear-gradient(135deg, var(--nwui-primary), var(--nwui-secondary)) !important;
	color: #fff !important;
	box-shadow: 0 6px 18px var(--nwui-green-glow);
}

.nwui-btn-checkout:hover {
	filter: brightness(1.05);
	transform: translateY(-2px);
	color: #fff;
}

@media (max-width: 768px) {
	.nwui-mini-cart-panel {
		top: auto;
		bottom: 0;
		right: 0;
		left: 0;
		max-width: 100%;
		height: auto;
		max-height: 88vh;
		border-radius: var(--nwui-radius-card) var(--nwui-radius-card) 0 0;
		transform: translateY(100%);
		box-shadow: 0 -12px 40px rgba(163, 177, 198, 0.4);
	}

	.nwui-mini-cart.is-open .nwui-mini-cart-panel {
		transform: translateY(0);
	}

	.nwui-mini-cart-body {
		max-height: 50vh;
		padding: 16px;
	}

	.nwui-mini-cart-item.nwui-item-new {
		animation-name: nwui-slide-in-item-mobile;
	}

	@keyframes nwui-slide-in-item-mobile {
		from { opacity: 0; transform: translateY(20px); }
		to { opacity: 1; transform: translateY(0); }
	}
}
