
	.auth-message.svelte-1h4vpzb {
		font-size: 0.875rem;
		margin-top: 0.25rem;
	}

	.info-section.svelte-1h4vpzb {
		margin-top: 1rem;
		padding: 0.875rem 1rem;
		background: linear-gradient(135deg, rgba(59, 130, 246, 0.1), rgba(37, 99, 235, 0.05));
		border-left: 3px solid #3b82f6;
		border-radius: 0.375rem;
		box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
	}

	.course-info.svelte-1h4vpzb {
		font-size: 0.875rem;
		color: #e0e7ff;
		margin: 0 0 0.75rem 0;
		line-height: 1.5;
		text-align: left;
	}

	.button-wrapper.svelte-1h4vpzb {
		text-align: center;
	}

	.set-button.svelte-1h4vpzb {
		display: inline-block;
		padding: 0.5rem 1.25rem;
		background: linear-gradient(135deg, #3b82f6, #2563eb);
		color: white;
		text-decoration: none;
		border-radius: 0.375rem;
		font-size: 0.875rem;
		font-weight: 600;
	}

	.set-button.svelte-1h4vpzb:hover {
		background: linear-gradient(135deg, #2563eb, #1d4ed8);
	}

	/* (unused) .course-warning {
		margin-top: 1rem;
		padding: 0.75rem 1rem;
		background: linear-gradient(135deg, rgba(251, 191, 36, 0.15), rgba(245, 158, 11, 0.08));
		border-left: 3px solid #fbbf24;
		border-radius: 0.375rem;
		font-size: 0.875rem;
		color: #fef3c7;
		font-weight: 500;
		line-height: 1.5;
		box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
	}*/
	.product-header.svelte-1h4vpzb {
		margin-bottom: 1.5rem;
		padding-bottom: 1.5rem;
		border-bottom: 1px solid rgba(71, 85, 105, 0.3);
	}

	.product-info.svelte-1h4vpzb {
		display: flex;
		align-items: center;
		gap: 1.5rem;
	}

	.product-image.svelte-1h4vpzb {
		width: 5rem;
		height: 5rem;
		border-radius: 0.75rem;
		border: 2px solid #475569;
		object-fit: cover;
		flex-shrink: 0;
	}

	.product-details.svelte-1h4vpzb {
		flex: 1;
	}

	.product-title.svelte-1h4vpzb {
		font-size: 1.25rem;
		font-weight: 700;
		color: #f1f5f9;
		margin: 0 0 0.5rem 0;
	}

	.product-description.svelte-1h4vpzb {
		color: #94a3b8;
		margin: 0 0 0.75rem 0;
		font-size: 0.875rem;
	}

	.product-price.svelte-1h4vpzb {
		font-size: 1.5rem;
		font-weight: 700;
		color: #60a5fa;
	}

	.price-container.svelte-1h4vpzb {
		display: flex;
		flex-direction: column;
		gap: 0.25rem;
	}

	.original-price.svelte-1h4vpzb {
		font-size: 1rem;
		color: #94a3b8;
		text-decoration: line-through;
	}

	.discounted-price.svelte-1h4vpzb {
		font-size: 1.5rem;
		font-weight: 700;
		color: #34d399;
	}

	@media (max-width: 640px) {
		.product-header.svelte-1h4vpzb {
			margin-bottom: 1rem;
			padding-bottom: 1rem;
		}

		.product-info.svelte-1h4vpzb {
			gap: 1rem;
		}

		.product-image.svelte-1h4vpzb {
			width: 4rem;
			height: 4rem;
		}

		.product-title.svelte-1h4vpzb {
			font-size: 1.125rem;
		}

		.product-price.svelte-1h4vpzb {
			font-size: 1.25rem;
		}

		.discounted-price.svelte-1h4vpzb {
			font-size: 1.25rem;
		}

		.original-price.svelte-1h4vpzb {
			font-size: 0.875rem;
		}
	}

	.promo-section.svelte-tlsvjw {
		display: flex;
		flex-direction: column;
		gap: 1rem;
	}

	.section-title.svelte-tlsvjw {
		font-size: 1.125rem;
		font-weight: 600;
		color: #cbd5e1;
		margin: 0;
	}

	.promo-input-container.svelte-tlsvjw {
		display: flex;
		flex-direction: column;
		gap: 0.75rem;
	}

	.promo-input-group.svelte-tlsvjw {
		position: relative;
		display: flex;
		align-items: center;
	}

	.promo-input.svelte-tlsvjw {
		width: 100%;
		padding: 0.75rem 4.5rem 0.75rem 1rem;
		background: rgba(51, 65, 85, 0.6);
		border: 1px solid rgba(71, 85, 105, 0.6);
		border-radius: 0.5rem;
		color: #e2e8f0;
		font-size: 0.875rem;
		transition: all 0.15s ease;
		backdrop-filter: blur(8px);
	}

	.promo-input.svelte-tlsvjw::placeholder {
		color: #64748b;
	}

	.promo-input.svelte-tlsvjw:focus {
		outline: none;
		border-color: #3b82f6;
		box-shadow: 0 0 0 1px #3b82f6;
		background: rgba(51, 65, 85, 0.8);
	}

	.promo-input.success.svelte-tlsvjw {
		border-color: #10b981;
		background: rgba(16, 185, 129, 0.1);
	}

	.promo-input.error.svelte-tlsvjw {
		border-color: #ef4444;
		background: rgba(239, 68, 68, 0.1);
	}

	.promo-spinner.svelte-tlsvjw,
	.promo-remove-btn.svelte-tlsvjw {
		position: absolute;
		right: 0.75rem;
		display: flex;
		align-items: center;
		justify-content: center;
	}

	.promo-spinner.svelte-tlsvjw {
		pointer-events: none;
		right: 3rem;
	}

	.promo-remove-btn.svelte-tlsvjw {
		width: 1.5rem;
		height: 1.5rem;
		background: none;
		border: none;
		cursor: pointer;
		color: #64748b;
		transition: color 0.15s ease;
		padding: 0;
	}

	.promo-remove-btn.svelte-tlsvjw:hover {
		color: #ef4444;
	}

	.promo-remove-btn.svelte-tlsvjw svg:where(.svelte-tlsvjw) {
		width: 1rem;
		height: 1rem;
	}

	.promo-error.svelte-tlsvjw,
	.promo-success.svelte-tlsvjw {
		display: flex;
		align-items: center;
		gap: 0.5rem;
		padding: 0.5rem 0.75rem;
		border-radius: 0.375rem;
		font-size: 0.8rem;
	}

	.promo-info.svelte-tlsvjw {
		display: flex;
		align-items: center;
		gap: 0.5rem;
		padding: 0.5rem 0.75rem;
		border-radius: 0.375rem;
		font-size: 0.8rem;
		background: rgba(59, 130, 246, 0.1);
		border: 1px solid rgba(59, 130, 246, 0.3);
		color: #93c5fd;
	}

	.promo-error.svelte-tlsvjw {
		background: rgba(239, 68, 68, 0.1);
		border: 1px solid rgba(239, 68, 68, 0.3);
		color: #fca5a5;
	}

	.promo-success.svelte-tlsvjw {
		background: rgba(16, 185, 129, 0.1);
		border: 1px solid rgba(16, 185, 129, 0.3);
		color: #6ee7b7;
	}

	.promo-warning.svelte-tlsvjw {
		background: rgba(251, 191, 36, 0.1);
		border: 1px solid rgba(251, 191, 36, 0.3);
		color: #fcd34d;
	}

	.promo-error-icon.svelte-tlsvjw,
	.promo-success-icon.svelte-tlsvjw {
		width: 1rem;
		height: 1rem;
		flex-shrink: 0;
	}

	.spinner.svelte-tlsvjw {
		width: 1rem;
		height: 1rem;
		border: 2px solid #e2e8f0;
		border-top: 2px solid #3b82f6;
		border-radius: 50%;
		animation: svelte-tlsvjw-spin 1s linear infinite;
		flex-shrink: 0;
	}

	@keyframes svelte-tlsvjw-spin {
		from {
			transform: rotate(0deg);
		}
		to {
			transform: rotate(360deg);
		}
	}

	/* Mobile responsiveness */
	@media (max-width: 640px) {
		.promo-input.svelte-tlsvjw {
			padding: 0.625rem 4rem 0.625rem 0.875rem;
			font-size: 0.8rem;
		}

		.promo-error.svelte-tlsvjw,
		.promo-success.svelte-tlsvjw {
			padding: 0.375rem 0.625rem;
			font-size: 0.75rem;
		}
	}

	.payment-section.svelte-li2py8 {
		display: flex;
		flex-direction: column;
		gap: 1rem;
	}
	.section-title.svelte-li2py8 {
		font-size: 1.125rem;
		font-weight: 600;
		color: #cbd5e1;
		margin: 0;
	}
	.payment-elements.svelte-li2py8 {
		min-height: 200px;
		position: relative;
		transition: opacity 0.15s ease;
		isolation: auto;
		pointer-events: auto;
	}
	.payment-elements.loading.svelte-li2py8 {
		opacity: 0.6;
	}
	.elements-loading.svelte-li2py8 {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0.75rem;
		padding: 2rem;
		color: #64748b;
		font-size: 0.875rem;
	}
	.spinner.svelte-li2py8 {
		width: 1rem;
		height: 1rem;
		border: 2px solid #e2e8f0;
		border-top: 2px solid #3b82f6;
		border-radius: 50%;
		animation: svelte-li2py8-spin 1s linear infinite;
		flex-shrink: 0;
	}
	@keyframes svelte-li2py8-spin {
		from {
			transform: rotate(0deg);
		}
		to {
			transform: rotate(360deg);
		}
	}

	.checkout-actions.svelte-1gwbfpg {
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 0.75rem;
		margin-top: 1rem;
	}

	.pay-button.svelte-1gwbfpg {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0.5rem;
		padding: 0.875rem 1.25rem;
		background: linear-gradient(135deg, #3b82f6, #1e40af);
		color: white;
		border: none;
		border-radius: 0.5rem;
		font-weight: 600;
		font-size: 0.95rem;
		cursor: pointer;
		width: 100%;
		transition:
			transform 0.15s cubic-bezier(0.4, 0, 0.2, 1),
			box-shadow 0.15s cubic-bezier(0.4, 0, 0.2, 1),
			background 0.15s cubic-bezier(0.4, 0, 0.2, 1);
		box-shadow: 0 2px 8px 0 rgba(59, 130, 246, 0.2);
		min-height: 2.75rem;
		border: 1px solid rgba(59, 130, 246, 0.2);
		transform: translateZ(0);
		will-change: transform;
		backface-visibility: hidden;
	}

	.pay-button.svelte-1gwbfpg:hover:not(:disabled) {
		background: linear-gradient(135deg, #2563eb, #1d4ed8);
		transform: translateY(-1px) translateZ(0);
		box-shadow: 0 4px 12px 0 rgba(59, 130, 246, 0.3);
		border-color: rgba(59, 130, 246, 0.4);
	}

	.pay-button.svelte-1gwbfpg:disabled {
		opacity: 0.6;
		cursor: not-allowed;
		transform: translateZ(0);
	}

	.processing-spinner.svelte-1gwbfpg {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0.5rem;
		padding: 0.875rem 1.25rem;
		background: linear-gradient(135deg, #3b82f6, #1e40af);
		color: white;
		border: none;
		border-radius: 0.5rem;
		font-weight: 600;
		font-size: 0.95rem;
		width: 100%;
		min-height: 2.75rem;
		border: 1px solid rgba(59, 130, 246, 0.2);
		box-shadow: 0 2px 8px 0 rgba(59, 130, 246, 0.2);
		opacity: 0.8;
	}

	.cancel-button.svelte-1gwbfpg {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0.5rem;
		padding: 0.75rem 1rem;
		background: rgba(71, 85, 105, 0.2);
		color: #cbd5e1;
		border: 1px solid rgba(71, 85, 105, 0.4);
		border-radius: 0.5rem;
		font-size: 0.875rem;
		cursor: pointer;
		width: 100%;
		transition:
			background 0.15s cubic-bezier(0.4, 0, 0.2, 1),
			border-color 0.15s cubic-bezier(0.4, 0, 0.2, 1),
			color 0.15s cubic-bezier(0.4, 0, 0.2, 1);
		backdrop-filter: blur(8px);
		transform: translateZ(0);
		will-change: auto;
		backface-visibility: hidden;
	}

	.cancel-button.svelte-1gwbfpg:hover:not(:disabled) {
		background: rgba(71, 85, 105, 0.3);
		border-color: rgba(100, 116, 139, 0.6);
		color: #e2e8f0;
	}

	.cancel-button.svelte-1gwbfpg:disabled {
		opacity: 0.6;
		cursor: not-allowed;
	}

	.button-icon.svelte-1gwbfpg {
		width: 1.25rem;
		height: 1.25rem;
	}

	.button-spinner.svelte-1gwbfpg {
		width: 1rem !important;
		height: 1rem !important;
		border: 2px solid #e2e8f0 !important;
		border-top: 2px solid #3b82f6 !important;
		border-radius: 50% !important;
		animation: svelte-1gwbfpg-spin 1s linear infinite !important;
		flex-shrink: 0 !important;
		margin: 0 !important;
		display: inline-block !important;
		min-width: 1rem !important;
		min-height: 1rem !important;
		max-width: 1rem !important;
		max-height: 1rem !important;
		box-sizing: border-box !important;
	}

	@keyframes svelte-1gwbfpg-spin {
		from {
			transform: rotate(0deg);
		}
		to {
			transform: rotate(360deg);
		}
	}

	@media (max-width: 640px) {
		.pay-button.svelte-1gwbfpg {
			padding: 0.75rem 1rem;
			font-size: 0.9rem;
			min-height: 2.5rem;
		}
	}

	.loading-state.svelte-134w7hr,
	.auth-required.svelte-134w7hr {
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		padding: 3rem 1rem;
		gap: 1rem;
	}

	.auth-required.svelte-134w7hr {
		padding: 0 1rem 0rem 1rem;
		gap: 0;
		justify-content: flex-start;
		min-height: 400px;
	}

	.auth-form.svelte-134w7hr {
		width: 100%;
		display: flex;
		justify-content: center;
		flex: 1;
	}

	.spinner.svelte-134w7hr {
		width: 2rem;
		height: 2rem;
		border: 2px solid #e2e8f0;
		border-top: 2px solid #3b82f6;
		border-radius: 50%;
		animation: svelte-134w7hr-spin 1s linear infinite;
		flex-shrink: 0;
		margin: 0 auto;
	}

	@keyframes svelte-134w7hr-spin {
		from {
			transform: rotate(0deg);
		}
		to {
			transform: rotate(360deg);
		}
	}

	.error-message.svelte-f3h7c0 {
		display: flex;
		align-items: center;
		gap: 0.75rem;
		padding: 1rem;
		background: rgba(239, 68, 68, 0.1);
		border: 1px solid #ef4444;
		border-radius: 0.5rem;
		color: #fca5a5;
		font-size: 0.875rem;
	}
	.error-icon.svelte-f3h7c0 {
		width: 1.25rem;
		height: 1.25rem;
		flex-shrink: 0;
	}

	.security-notice.svelte-1uizba3 {
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 0.375rem;
		padding: 0.5rem 0.75rem;
		border-radius: 0.375rem;
		color: #93c5fd;
		font-size: 0.8rem;
		text-align: center;
		margin-top: 0.5rem;
	}
	@media (max-width: 640px) {
		.security-notice.svelte-1uizba3 {
			font-size: 0.75rem;
			padding: 0.375rem 0.5rem;
		}
	}

	.checkout-container.svelte-kko2bt {
		display: flex;
		justify-content: center;
		max-width: 100%;
	}

	.checkout-card.svelte-kko2bt {
		width: 100%;
		max-width: 500px;
		border: 1px solid rgba(59, 130, 246, 0.3);
		border-radius: 0.75rem;
		padding: 1.5rem;
		/* Avoid GPU compositing that can suppress initial paint of Stripe iframes */
		isolation: isolate;
	}

	.checkout-content.svelte-kko2bt {
		display: flex;
		flex-direction: column;
		gap: 1.5rem;
	}

	@media (max-width: 640px) {
		.checkout-card.svelte-kko2bt {
			padding: 1rem;
		}
	}
