.charge-page {
	width: 100%;
	max-width: 440px;
	padding: 16px;

	&__card {
		background: var(--bg-page);
		border-radius: 16px;
		box-shadow: 0 4px 24px rgba(0, 0, 0, 0.1);
		overflow: hidden;
	}

	&__header {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 20px 20px 0;

		h1 {
			font-size: 1.125rem;
			font-weight: 700;
			margin: 0;
		}
	}

	&__close {
		width: 32px;
		height: 32px;
		display: flex;
		align-items: center;
		justify-content: center;
		border: none;
		background: transparent;
		font-size: 1.25rem;
		cursor: pointer;
		color: var(--text-muted);
		border-radius: 50%;

		&:hover {
			background: var(--bg-subtle);
		}
	}

	&__body {
		padding: 16px 20px 24px;
	}

	&__label {
		font-size: 0.8125rem;
		font-weight: 600;
		color: var(--text-secondary);
		margin-bottom: 6px;
		display: block;
	}

	&__amount-input {
		width: 100%;
		padding: 12px 14px;
		border: 1px solid var(--border-default);
		border-radius: 10px;
		font-size: 1.125rem;
		font-weight: 600;
		outline: none;
		text-align: right;
		background: var(--bg-page);
		color: var(--fg-default);

		&:focus {
			border-color: var(--color-blue);
			box-shadow: 0 0 0 3px var(--color-blue-bg);
		}
	}

	&__quick-btns {
		display: flex;
		gap: 6px;
		margin-top: 8px;
	}

	&__quick-btn {
		flex: 1;
		padding: 8px 0;
		border: 1px solid var(--border-default);
		border-radius: 8px;
		font-size: 0.75rem;
		font-weight: 500;
		background: var(--bg-page);
		color: var(--fg-default);
		cursor: pointer;
		transition: all 0.15s;

		&:hover {
			background: var(--bg-subtle);
			border-color: var(--color-blue);
			color: var(--color-blue);
		}
	}

	&__receipt {
		margin-top: 20px;
		padding: 16px;
		background: var(--bg-subtle);
		border-radius: 10px;
	}

	&__receipt-row {
		display: flex;
		justify-content: space-between;
		font-size: 0.8125rem;
		padding: 4px 0;
		color: var(--text-secondary);

		&--total {
			font-size: 0.9375rem;
			font-weight: 700;
			color: var(--fg-default);
			border-top: 1px solid var(--border-default);
			margin-top: 8px;
			padding-top: 10px;
		}
	}

	&__submit {
		width: 100%;
		padding: 14px;
		margin-top: 16px;
		border: none;
		border-radius: 12px;
		background: var(--color-blue);
		color: #fff;
		font-size: 1rem;
		font-weight: 600;
		cursor: pointer;
		transition: background 0.15s;

		&:hover {
			background: var(--color-blue-hover);
		}

		&:disabled {
			background: var(--text-muted);
			cursor: not-allowed;
		}
	}

	// 결제 결과
	&__result {
		padding: 40px 20px;
		text-align: center;
	}

	&__result-icon {
		width: 56px;
		height: 56px;
		border-radius: 50%;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		font-size: 1.5rem;
		font-weight: 700;
		margin-bottom: 16px;

		&--success {
			background: var(--color-success-bg);
			color: var(--color-success-text);
		}

		&--error {
			background: var(--color-danger-bg);
			color: var(--color-danger);
		}
	}

	&__result-message {
		font-size: 1rem;
		font-weight: 600;
		margin-bottom: 8px;
	}

	&__result-code {
		font-size: 0.75rem;
		color: var(--text-muted);
		margin-bottom: 16px;
	}

	&__spinner {
		width: 40px;
		height: 40px;
		border: 3px solid var(--border-default);
		border-top-color: var(--color-blue);
		border-radius: 50%;
		animation: charge-spin 0.8s linear infinite;
		margin: 0 auto 16px;
	}
}

@keyframes charge-spin {
	to { transform: rotate(360deg); }
}