.member-form {
	max-width: 480px;
	margin: 0 auto;
	padding: 40px;
	border: 1px solid #ccc;
	margin-top: 40px;
	margin-bottom: 40px;
}

.member-form .form-group {
	margin-bottom: 18px;
}

.member-form label {
	display: block;
	margin-bottom: 6px;
	font-weight: bold;
	font-size: 16px;
}

.member-form input[type="text"],
.member-form input[type="email"],
.member-form input[type="password"],
.member-form input[type="tel"] {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #ccc;
	border-radius: 3px;
	font-size: 16px;
	box-sizing: border-box;
	font-family: "Microsoft JhengHei", "Ubuntu", "PingFang TC";
	outline: none;
}

.member-form input[type="text"]:focus,
.member-form input[type="email"]:focus,
.member-form input[type="password"]:focus,
.member-form input[type="tel"]:focus {
	border-color: #598bb4;
	box-shadow: 0 0 3px rgba(89, 139, 180, 0.3);
}

.member-form input[readonly] {
	background-color: #f5f5f5;
	color: #888;
}

.member-form .submit-button {
	background: linear-gradient(to bottom, #007dc1 5%, #0061a7 100%);
	border: 1px solid #124d77;
	border-radius: 3px;
	color: #fff;
	padding: 12px 24px;
	font-size: 16px;
	cursor: pointer;
	font-family: "Microsoft JhengHei", "Ubuntu", "PingFang TC";
	width: 100%;
	font-weight: bold;
}

.member-form .submit-button:hover {
	background: linear-gradient(to bottom, #0061a7 5%, #004f8a 100%);
}

.member-form .submit-button {
	transition: transform 0.05s ease;
}

.member-form .submit-button:active:not(:disabled) {
	transform: translateY(1px);
}

.member-form .error-message {
	color: #c80000;
	margin-bottom: 15px;
	padding: 10px 14px;
	background-color: #fff0f0;
	border: 1px solid #c80000;
	border-radius: 3px;
	font-size: 16px;
}

.member-form .success-message {
	color: #2a8a2a;
	margin-bottom: 15px;
	padding: 10px 14px;
	background-color: #f0fff0;
	border: 1px solid #2a8a2a;
	border-radius: 3px;
	font-size: 16px;
}

.member-form .form-links {
	text-align: center;
	margin-top: 20px;
	font-size: 16px;
}

.member-form .form-links a {
	margin: 0 10px;
}

.member-form .checkbox-group {
	margin-bottom: 18px;
}

.member-form .checkbox-group label {
	display: inline;
	font-weight: normal;
	cursor: pointer;
}

.member-form .checkbox-group input[type="checkbox"] {
	cursor: pointer;
}

.member-form .field-hint {
	font-size: 16px;
	color: #888;
	margin-top: 4px;
}

.member-form .submit-button:disabled {
	opacity: 0.7;
	cursor: not-allowed;
	display: flex;
	align-items: center;
	justify-content: center;
}

.member-form .submit-button .btn-loader {
	display: block;
	width: 16px;
	height: 16px;
	border: 2px solid rgba(255,255,255,0.4);
	border-top-color: #fff;
	border-radius: 50%;
	animation: btn-spin 0.6s linear infinite;
}

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