﻿/* 註冊/登入專用樣式 */
.auth-section {
		min-height: calc(100vh - 90px);
		display: flex;
		align-items: center;
		justify-content: center;
		padding: 2rem 0;
}
.auth-card {
		background: rgba(255, 255, 255, 0.95);
		border-radius: 20px;
		box-shadow: 0 4px 20px rgba(212, 165, 165, 0.1);
		padding: 3rem;
		max-width: 480px;
		width: 100%;
}
.auth-logo {
		text-align: center;
		margin-bottom: 2rem;
}
.auth-logo h2 {
		color: var(--primary-color);
		font-size: 2rem;
		font-weight: 600;
		margin-bottom: 0.5rem;
}
.auth-logo p {
		color: #666;
		font-size: 0.9rem;
}
.btn-social-login {
		width: 100%;
		padding: 12px 20px;
		border: none;
		border-radius: 8px;
		font-size: 16px;
		font-weight: 500;
		cursor: pointer;
		transition: all 0.3s ease;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 10px;
		margin-bottom: 12px;
}
.btn-social-login:hover {
		transform: translateY(-2px);
		box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}
.btn-social-login i {
		font-size: 1.5rem;
		margin-right: .5rem;
}
/* 成功頁面 */
.auth-card .success-icon {
		width: 100px;
		height: 100px;
		background: transparent;
		border-radius: 50%;
		display: flex;
		align-items: center;
		justify-content: center;
		margin: 0 auto 2rem;
		animation: scaleIn 0.5s ease;
}
.auth-card .success-icon i {
		font-size: 3rem;
		color: white;
}
.auth-card .success-container .success-icon {
		background-color: #f1f1f1;
}
.auth-logo + a:not(.btn-social-login) {
		color: var(--primary-color);
}
.auth-logo + a:not(.btn-social-login):hover {
		color: var(--click-color);
}
@keyframes scaleIn {
		from {
				transform: scale(0);
				opacity: 0;
		}
		to {
				transform: scale(1);
				opacity: 1;
		}
}
.success-title {
		font-size: 1.8rem;
		font-weight: 600;
		color: #28a745;
		margin-bottom: 1rem;
}
.success-message {
		font-size: 1.1rem;
		color: #6c757d;
		margin-bottom: 2rem;
		line-height: 1.6;
}
.success-info {
		background: #f8f9fa;
		border-radius: 12px;
		padding: 1.5rem;
		margin-bottom: 2rem;
		text-align: left;
}
.success-info-item {
		display: flex;
		align-items: center;
		padding: 0.75rem 0;
		border-bottom: 1px solid #e9ecef;
}
.success-info-item:last-child {
		border-bottom: none;
}
.success-info-label {
		font-weight: 600;
		color: #495057;
		min-width: 100px;
}
.success-info-value {
		color: #6c757d;
}
.success-actions {
		display: flex;
		gap: 1rem;
		justify-content: center;
		flex-wrap: wrap;
}
.btn-success-primary {
		text-decoration: none;
		flex: 1;
		background: var(--primary-color);
		color: #fff;
		border: none;
		padding: .5rem 1rem;
		border-radius: 10px;
		font-size: 1.05rem;
		font-weight: 500;
		cursor: pointer;
		transition: all 0.3s;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 10px;
}
.btn-success-primary:hover {
		background: var(--click-color);
		transform: translateY(-2px);
		box-shadow: 0 4px 15px rgba(212, 165, 165, 0.3);
}
.btn-success-secondary {
		text-decoration: none;
		flex: 1;
		background: #fff;
		color: var(--primary-color);
		border: 2px solid var(--primary-color);
		padding: .5rem 1rem;
		border-radius: 10px;
		font-size: 1.05rem;
		font-weight: 500;
		cursor: pointer;
		transition: all 0.3s;
}
.btn-success-secondary:hover {
		background: #FFF5F7;
}
.countdown-text {
		font-size: 0.9rem;
		color: #999;
		margin-top: 1.5rem;
}
.countdown-number {
		font-weight: 600;
		color: #000000;
}
/* 失敗頁面 */
.error-icon {
		width: 100px;
		height: 100px;
		background: linear-gradient(135deg, #dc3545 0%, #c82333 100%);
		border-radius: 50%;
		display: flex;
		align-items: center;
		justify-content: center;
		margin: 0 auto 2rem;
		animation: shakeError 0.5s ease;
}
.error-icon i {
		font-size: 3rem;
		color: white;
}
@keyframes shakeError {
		0%, 100% {
				transform: translateX(0);
		}
		25% {
				transform: translateX(-10px);
		}
		50% {
				transform: translateX(10px);
		}
		75% {
				transform: translateX(-10px);
		}
}
.error-title {
		font-size: 1.8rem;
		font-weight: 600;
		color: #dc3545;
		margin-bottom: 1rem;
}
.error-message {
		font-size: 1.1rem;
		color: #6c757d;
		margin-bottom: 2rem;
		line-height: 1.6;
}
.error-reasons {
		background: #fff3cd;
		border-left: 4px solid #ffc107;
		border-radius: 8px;
		padding: 1.5rem;
		margin-bottom: 2rem;
		text-align: left;
}
.error-reasons-title {
		font-weight: 600;
		color: #856404;
		margin-bottom: 1rem;
		display: flex;
		align-items: center;
}
.error-reasons-title i {
		margin-right: 0.5rem;
}
.error-reasons-list {
		list-style: none;
		padding: 0;
		margin: 0;
}
.error-reasons-list li {
		padding: 0.5rem 0;
		color: #856404;
		display: flex;
		align-items: flex-start;
}
.error-reasons-list li i {
		margin-right: 0.5rem;
		margin-top: 0.25rem;
		flex-shrink: 0;
}
.error-actions {
		display: flex;
		gap: 1rem;
		justify-content: center;
		flex-wrap: wrap;
}
.btn-error-primary {
		text-decoration: none;
		flex: 1;
		background: var(--primary-color);
		color: #fff;
		border: none;
		padding: .5rem 1rem;
		border-radius: 10px;
		font-size: 1.05rem;
		font-weight: 500;
		cursor: pointer;
		transition: all 0.3s;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 10px;
}
.btn-error-primary:hover {
		background: var(--click-color);
		transform: translateY(-2px);
		box-shadow: 0 4px 15px rgba(212, 165, 165, 0.3);
}
.btn-error-secondary {
		text-decoration: none;
		flex: 1;
		background: #fff;
		color: var(--primary-color);
		border: 2px solid var(--primary-color);
		padding: .5rem 1rem;
		border-radius: 10px;
		font-size: 1.05rem;
		font-weight: 500;
		cursor: pointer;
		transition: all 0.3s;
}
.btn-error-secondary:hover {
		background: #FFF5F7;
}
.help-text {
		font-size: 0.9rem;
		color: #999;
		margin-top: 2rem;
}
.help-text a {
		color: #000000;
		text-decoration: none;
}
.help-text a:hover {
		text-decoration: underline;
}
/* 步驟指示器 */
.register-steps {
		display: flex;
		justify-content: center;
		align-items: center;
		margin-bottom: 2rem;
		gap: 1rem;
}
.register-step {
		display: flex;
		align-items: center;
		gap: 0.5rem;
		font-size: 0.9rem;
		color: #999;
}
.register-step.active {
		color: var(--primary-color);
		font-weight: 600;
}
/* 國碼+手機號碼 */
.phone-input-group {
		display: flex;
		gap: 0.5rem;
}
.phone-input-group select {
		flex: 0 0 160px;
}
.phone-input-group input {
		flex: 1;
}
/* 密碼強度 */
.password-strength-bar {
		height: 4px;
		background: #e9ecef;
		border-radius: 2px;
		margin-top: 0.5rem;
		overflow: hidden;
}
.password-strength-fill {
		height: 100%;
		width: 0;
		transition: all 0.3s ease;
		border-radius: 2px;
}
.password-strength-fill.weak {
		width: 33%;
		background: #dc3545;
}
.password-strength-fill.medium {
		width: 66%;
		background: #ffc107;
}
.password-strength-fill.strong {
		width: 100%;
		background: #28a745;
}
.register-step.completed {
		color: var(--click-color);
}
.step-number {
		width: 32px;
		height: 32px;
		border-radius: 50%;
		background: #e9ecef;
		color: #000000;
		display: flex;
		align-items: center;
		justify-content: center;
		font-weight: 600;
}
.register-step.active .step-number {
		background: var(--primary-color);
		color: #fff;
}
.register-step.completed .step-number {
		background: var(--click-color);
		color: #fff;
}
.step-divider {
		width: 60px;
		height: 2px;
		background: var(--primary-color);
}
.step-divider.active {
		background: var(--click-color);
}
/* OTP 提示 */
.otp-hint {
		text-align: center;
		color: #6c757d;
		margin-bottom: 2rem;
		font-size: 1rem;
		line-height: 1.6;
}
.otp-hint i {
		font-size: 2rem;
}
.otp-hint .phone-display {
		font-weight: 600;
		font-size: 1.25rem;
}
/* OTP 輸入框（6格）*/
.otp-input-group {
		display: flex;
		gap: 0.5rem;
		justify-content: center;
		margin: 2rem 0;
}
.otp-input {
		width: 50px;
		height: 55px;
		text-align: center;
		font-size: 1.5rem;
		font-weight: 600;
		border: 2px solid #dee2e6;
		border-radius: 8px;
		transition: all 0.3s ease;
}
.otp-input:focus {
		border-color: #2c5f7f;
		outline: none;
		box-shadow: 0 0 0 0.2rem rgba(44, 95, 127, 0.15);
}
.otp-input.error {
		border-color: #dc3545;
		animation: shake 0.3s;
}
@keyframes shake {
		0%, 100% {
				transform: translateX(0);
		}
		25% {
				transform: translateX(-5px);
		}
		75% {
				transform: translateX(5px);
		}
}
/* 重送按鈕 */
.btn-resend {
		background: transparent;
		border: 1px solid #dee2e6;
		color: #6c757d;
		padding: 0.6rem 1.5rem;
		border-radius: 8px;
		font-size: 0.95rem;
		transition: all 0.3s ease;
		width: 100%;
		margin-top: 1rem;
}
.btn-resend:hover:not(:disabled) {
		border-color: #2c5f7f;
		background: rgba(44, 95, 127, 0.05);
}
.btn-resend:disabled {
		opacity: 0.5;
		cursor: not-allowed;
}
/* 更換手機連結 */
.change-phone-link {
		text-align: center;
		margin-top: 1.5rem;
		font-size: 0.9rem;
}
.change-phone-link a {
		color: var(--text-dark);
		text-decoration: none;
		transition: all 0.3s ease;
}
.change-phone-link a:hover {
		text-decoration: underline;
}
/* 錯誤訊息 */
.alert-custom {
		border-radius: 8px;
		padding: 1rem;
		margin-bottom: 1.5rem;
		display: none;
}
.alert-custom.show {
		display: block;
		animation: slideDown 0.3s ease;
}
@keyframes slideDown {
		from {
				opacity: 0;
				transform: translateY(-10px);
		}
		to {
				opacity: 1;
				transform: translateY(0);
		}
}
/* LINE 按鈕 */
.btn-line {
		background-color: #06C755;
		color: white;
}
.btn-line:hover {
		background-color: #05b34c;
}
/* Google 按鈕 */
.btn-google {
		background-color: #f2f2f2;
		color: #3c4043;
		border: 1px solid #dadce0;
		padding: 5px 20px;
}
.btn-google img {
		max-width: 50px;
}
/* Facebook 按鈕 */
.btn-facebook {
		background-color: #1877F2;
		color: white;
}
.btn-facebook:hover {
		background-color: #166fe5;
}
/* Apple 按鈕 */
.btn-apple {
		background-color: #000000;
		color: white;
}
.btn-apple:hover {
		background-color: #1a1a1a;
}
/* 第三方登入區塊 */
.social-login-group {
		margin-bottom: 20px;
}
.btn-line:hover {
		background: #00A000;
		transform: translateY(-2px);
}
.divider {
		text-align: center;
		margin: 1.5rem 0;
		position: relative;
}
.divider::before {
		content: '';
		position: absolute;
		top: 50%;
		left: 0;
		right: 0;
		height: 1px;
		background: #E0E0E0;
}
.divider span {
		background: white;
		padding: 0 1rem;
		position: relative;
		color: #999;
		font-size: 0.9rem;
}
.auth-links {
		display: flex;
		justify-content: space-between;
		margin-top: 1.5rem;
		font-size: 0.9rem;
}
.auth-links a {
		color: var(--primary-color);
		text-decoration: none;
		transition: color 0.3s;
}
.auth-links a:hover {
		color: var(--click-color);
}
/* 忘記密碼專用樣式 */
.auth-logo i {
		font-size: 4rem;
		color: var(--primary-color);
		margin-bottom: 1rem;
}
.btn-verify {
		background: var(--primary-color);
		border: none;
		color: white;
		padding: 0.75rem 1.5rem;
		border-radius: 10px;
		font-size: 0.9rem;
		white-space: nowrap;
		transition: all 0.3s;
}
.btn-verify:hover {
		background: var(--click-color);
}
.btn-verify:disabled {
		background: #E0E0E0;
		cursor: not-allowed;
}
.input-group-verify {
		display: flex;
		gap: 0.5rem;
}
.input-group-verify .form-control {
		flex: 1;
}
.step-indicator {
		display: flex;
		justify-content: center;
		margin-bottom: 2rem;
		gap: 1rem;
}
.step {
		width: 40px;
		height: 40px;
		border-radius: 50%;
		background: #E0E0E0;
		display: flex;
		align-items: center;
		justify-content: center;
		font-weight: 600;
		color: #999;
		transition: all 0.3s;
}
.step.active {
		background: var(--primary-color);
		color: white;
}
.step.completed {
		background: var(--done-color);
		color: white;
}
.auth-card .success-icon {
		text-align: center;
		margin-bottom: 2rem;
}
.auth-card .success-icon i {
		font-size: 5rem;
		color: var(--primary-color);
}
.form-check a {
		color: var(--done-color);
}
/* 會員中心專用樣式 */
.member-section {
		padding-top: 60px;
		padding-bottom: 60px;
		min-height: calc(100vh - 200px);
}
.member-sidebar {
		background: #fff;
		border-radius: 15px;
		padding: 0;
		box-shadow: 0 4px 20px rgba(212, 165, 165, 0.1);
		position: sticky;
		top: 110px;
		overflow: hidden;
}
.member-profile-header {
		background: linear-gradient(135deg, var(--primary-color) 0%, #E8B4BC 100%);
		padding: 30px 25px;
		text-align: center;
		color: #fff;
}
.member-avatar {
		width: 80px;
		height: 80px;
		border-radius: 50%;
		background: #fff;
		display: flex;
		align-items: center;
		justify-content: center;
		margin: 0 auto 15px;
		font-size: 2rem;
		color: var(--primary-color);
		border: 3px solid rgba(255, 255, 255, 0.3);
		overflow: hidden;
}
.member-avatar img {
		object-fit: cover;
		width: 100%;
		height: 100%;
}
.member-name {
		font-size: 1.2rem;
		font-weight: 500;
		margin-bottom: 5px;
}
.member-email {
		font-size: 1rem;
		opacity: 0.9;
}
.member-menu {
		list-style: none;
		padding: 0;
		margin: 0;
}
.member-menu-item {
		border-bottom: 1px solid #F5E5E7;
}
.member-menu-item:last-child {
		border-bottom: none;
}
.member-menu-link {
		display: flex;
		align-items: center;
		padding: 18px 25px;
		color: #666;
		text-decoration: none;
		transition: all 0.1s ease;
		gap: 12px;
}
.member-menu-link:hover {
		background: #FFF5F7;
		color: var(--primary-color);
		padding-left: 30px;
}
.member-menu-link.active {
		background: #FFF5F7;
		color: var(--primary-color);
		border-left: 3px solid var(--primary-color);
}
.member-menu-link i {
		font-size: 1.1rem;
		width: 24px;
}
.member-content {
		background: #fff;
		border-radius: 15px;
		padding: 3rem 2rem;
		box-shadow: 0 4px 20px rgba(212, 165, 165, 0.1);
		min-height: 500px;
}
.member-content-title {
		font-size: 1.8rem;
		color: #333;
		margin-bottom: 10px;
		font-weight: 500;
}
.member-content-subtitle {
		font-size: 0.95rem;
		color: #999;
		margin-bottom: 30px;
		padding-bottom: 20px;
		border-bottom: 2px solid #F5E5E7;
}
/* 訂單明細行 */
.order-detail-row {
		display: none;
		background-color: #f8f9fa;
}
.order-detail-row.active {
		display: table-row;
}
.order-detail-content {
		padding: 30px;
		animation: slideDown 0.3s ease-out;
}
@keyframes slideDown {
		from {
				opacity: 0;
				transform: translateY(-10px);
		}
		to {
				opacity: 1;
				transform: translateY(0);
		}
}
.order-detail-section {
		margin-bottom: 25px;
		padding-bottom: 25px;
		border-bottom: 1px solid #dee2e6;
}
.order-detail-section:last-child {
		margin-bottom: 0;
		padding-bottom: 0;
		border-bottom: none;
}
.order-detail-section h4 {
		font-size: 16px;
		font-weight: 600;
		margin-bottom: 15px;
		color: #333;
}
/* 訂單資訊 */
.order-detail-info {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
		gap: 12px;
}
.info-item {
		display: flex;
		align-items: center;
}
.info-label {
		font-weight: 500;
		color: #666;
		min-width: 90px;
}
.order-detail-info .info-value {
		color: #333;
		text-align: start;
}
/* 商品明細 */
.order-detail-products {
		display: flex;
		flex-direction: column;
		gap: 15px;
}
.detail-product-item {
		display: flex;
		align-items: center;
		gap: 15px;
		padding: 15px;
		background: white;
		border-radius: 8px;
		border: 1px solid #e0e0e0;
}
.detail-product-item img {
		width: 80px;
		height: 80px;
		object-fit: cover;
		border-radius: 6px;
}
.detail-product-info {
		flex: 1;
}
.detail-product-name {
		font-weight: 500;
		color: #333;
		margin-bottom: 5px;
}
.detail-product-spec {
		font-size: 14px;
		color: #666;
		margin-bottom: 5px;
}
.detail-product-price {
		font-size: 14px;
		color: #999;
}
.detail-product-subtotal {
		font-weight: 600;
		color: #333;
		font-size: 16px;
}
/* 金額明細 */
.order-detail-price {
		background: white;
		padding: 20px;
		border-radius: 8px;
		border: 1px solid #e0e0e0;
}
.price-row {
		display: flex;
		justify-content: space-between;
		padding: 8px 0;
		font-size: 15px;
}
.price-row.total {
		margin-top: 10px;
		padding-top: 15px;
		border-top: 1px solid #ccc;
		font-size: 18px;
		font-weight: 600;
		color: #333;
}
/* 會員卡片樣式 */
.member-card-wrapper {
		background: linear-gradient(135deg, var(--primary-color) 0%, #E8B4BC 100%);
		border-radius: 20px;
		padding: 2rem 4rem;
		color: #fff;
		box-shadow: 0 8px 30px rgba(212, 165, 165, 0.3);
		margin-bottom: 30px;
}
.member-card-header {
		display: flex;
		justify-content: space-between;
		align-items: center;
		margin-bottom: 30px;
}
.member-level {
		font-size: 1.5rem;
		font-weight: 500;
}
.member-card-logo {
		font-size: 1.2rem;
		opacity: 0.9;
}
.member-card-number {
		font-size: 1.1rem;
		letter-spacing: 2px;
		margin-bottom: 25px;
		opacity: 0.95;
}
.member-card-footer {
		display: flex;
		justify-content: space-between;
		align-items: center;
}
.member-card-name {
		font-size: 1.1rem;
}
.member-card-qr {
		width: 120px;
		height: 120px;
		background: #fff;
		border-radius: 8px;
		display: flex;
		align-items: center;
		justify-content: center;
}
.member-card-qr i {
		font-size: 5rem;
		color: var(--primary-color);
}
.member-card-qr img {
		width: 100px;
		height: 100px;
}
/* 統計卡片 */
.stats-cards {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 20px;
		margin-bottom: 40px;
}
.stat-card {
		background: #FFF5F7;
		border-radius: 12px;
		padding: 25px;
		text-align: center;
		transition: all 0.3s;
}
.stat-card:hover {
		transform: translateY(-5px);
		box-shadow: 0 8px 25px rgba(212, 165, 165, 0.15);
}
.stat-icon {
		width: 50px;
		height: 50px;
		background: var(--primary-color);
		border-radius: 50%;
		display: flex;
		align-items: center;
		justify-content: center;
		margin: 0 auto 15px;
		color: #fff;
		font-size: 1.3rem;
}
.stat-value {
		font-size: 1.8rem;
		color: var(--primary-color);
		font-weight: 600;
		margin-bottom: 5px;
}
.stat-label {
		font-size: 0.9rem;
		color: #666;
}
/* 表單樣式 */
.form-label {
		font-size: 0.95rem;
		color: #666;
		margin-bottom: 8px;
		font-weight: 500;
}
/* 訂單列表 */
.order-list {
		display: flex;
		flex-direction: column;
		gap: 20px;
}
.order-item {
		background: #FFF5F7;
		border-radius: 12px;
		padding: 25px;
		transition: all 0.3s;
}
.order-item:hover {
		box-shadow: 0 4px 20px rgba(212, 165, 165, 0.15);
}
.order-header {
		display: flex;
		justify-content: space-between;
		align-items: center;
		margin-bottom: 20px;
		padding-bottom: 15px;
		border-bottom: 1px solid rgba(212, 165, 165, 0.2);
}
.order-number {
		font-size: 1rem;
		color: #333;
		font-weight: 500;
}
.order-date {
		font-size: 1rem;
		color: #999;
}
.order-status {
		padding: 5px 15px;
		border-radius: 15px;
		font-size: 1rem;
		font-weight: 500;
}
.order-status.pending {
		background: #FFF3CD;
		color: #856404;
}
.order-status.processing {
		background: #D1ECF1;
		color: #0C5460;
}
.order-status.shipped {
		background: #D4EDDA;
		color: #155724;
}
.order-status.completed {
		background: var(--primary-color);
		color: #fff;
}
.order-status.cancelled {
		background: #F8D7DA;
		color: #721C24;
}
.order-products {
		display: flex;
		flex-direction: column;
		gap: 15px;
		margin-bottom: 20px;
}
.order-product {
		display: flex;
		gap: 15px;
}
.order-product-image {
		width: 80px;
		height: 80px;
		border-radius: 8px;
		overflow: hidden;
		flex-shrink: 0;
}
.order-product-image img {
		width: 100%;
		height: 100%;
		object-fit: cover;
}
.order-product-info {
		flex: 1;
}
.order-product-name {
		font-size: 0.95rem;
		color: #333;
		margin-bottom: 5px;
}
.order-product-spec {
		font-size: 1rem;
		color: #999;
		margin-bottom: 5px;
}
.order-product-price {
		font-size: 0.95rem;
		color: var(--primary-color);
		font-weight: 500;
}
.order-footer {
		display: flex;
		justify-content: space-between;
		align-items: center;
		padding-top: 15px;
		border-top: 1px solid rgba(212, 165, 165, 0.2);
}
.order-total {
		font-size: 1.2rem;
		color: #333;
		font-weight: 500;
}
.order-total span {
		color: var(--primary-color);
		font-size: 1.4rem;
}
.order-actions {
		display: flex;
		gap: 10px;
}
.btn-order-detail {
		padding: 8px 20px;
		border: 1px solid var(--primary-color);
		background: #fff;
		color: var(--primary-color);
		border-radius: 6px;
		font-size: 1rem;
		cursor: pointer;
		transition: all 0.3s;
}
.btn-order-detail:hover {
		background: var(--primary-color);
		color: #fff;
}
/* 收藏清單 */
.record-grid {
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
		gap: 20px;
}
.record-item {
		background: #FFF5F7;
		border-radius: 12px;
		overflow: hidden;
		transition: all 0.3s;
		position: relative;
}
.record-item:hover {
		transform: translateY(-5px);
		box-shadow: 0 8px 25px rgba(212, 165, 165, 0.15);
}
.record-image {
		width: 100%;
		padding-top: 100%;
		position: relative;
		overflow: hidden;
}
.record-image img {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		object-fit: cover;
}
.record-remove {
		position: absolute;
		top: 10px;
		right: 10px;
		width: 32px;
		height: 32px;
		background: rgba(255, 255, 255, 0.9);
		border: none;
		border-radius: 50%;
		cursor: pointer;
		display: flex;
		align-items: center;
		justify-content: center;
		color: #666;
		transition: all 0.3s;
		z-index: 2;
}
.record-remove:hover {
		background: #F44336;
		color: #fff;
}
.record-info {
		padding: 15px;
}
.record-name {
		font-size: 0.9rem;
		color: #333;
		margin-bottom: 8px;
}
.record-info a {
		text-decoration: none;
		color: #333;
}
.record-info a:hover {
		text-decoration: underline;
		color: #000;
}
.record-price {
		font-size: 1.1rem;
		color: var(--primary-color);
		font-weight: 500;
}
/* 地址管理 */
.address-list {
		display: grid;
		grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
		gap: 20px;
		margin-bottom: 20px;
}
.address-list.one {
		display: flex;
		flex-direction: column;
		gap: 20px;
		margin-bottom: 20px;
}
.address-card {
		background: #FFF5F7;
		border-radius: 12px;
		padding: 25px;
		position: relative;
		transition: all 0.3s;
}
.address-card:hover {
		box-shadow: 0 4px 20px rgba(212, 165, 165, 0.15);
}
.address-card.default {
		border: 2px solid var(--primary-color);
}
.address-default-badge {
		position: absolute;
		top: 15px;
		right: 15px;
		background: var(--primary-color);
		color: #fff;
		padding: 4px 12px;
		border-radius: 12px;
		font-size: 0.75rem;
}
.address-name {
		font-size: 1.1rem;
		color: #333;
		margin-bottom: 5px;
		font-weight: 500;
}
.address-phone {
		font-size: 0.9rem;
		color: #666;
		margin-bottom: 10px;
}
.address-detail {
		font-size: 0.9rem;
		color: #666;
		line-height: 1.6;
		margin-bottom: 15px;
}
.address-actions {
		display: flex;
		gap: 10px;
}
.address-actions.one {
		width: fit-content;
}
.btn-address-edit, .btn-address-delete {
		flex: 1;
		padding: 8px;
		border: 1px solid #E5E5E5;
		background: #fff;
		border-radius: 6px;
		font-size: 1rem;
		cursor: pointer;
		transition: all 0.3s;
}
.btn-address-edit {
		color: var(--done-color);
		border-color: var(--done-color);
}
.btn-address-edit:hover {
		background: var(--done-color);
		color: #fff;
}
.btn-address-delete {
		color: var(--primary-color);
		border-color: var(--primary-color);
}
.btn-address-delete:hover {
		background: var(--click-color);
		color: #fff;
}
.btn-add-address {
		background: #fff;
		border: 2px dashed var(--primary-color);
		color: var(--primary-color);
		padding: 15px;
		border-radius: 12px;
		font-size: 1rem;
		cursor: pointer;
		transition: all 0.3s;
		display: flex;
		align-items: center;
		justify-content: center;
		gap: 10px;
		min-height: 200px;
}
.btn-add-address.basic {
		min-height: 35px;
		border-style: solid;
		padding: .5rem 1rem;
}
.btn-add-address:hover {
		background: #FFF5F7;
}
/* 紅利點數 */
.points-summary {
		background: linear-gradient(135deg, var(--primary-color) 0%, #E8B4BC 100%);
		border-radius: 15px;
		padding: 40px;
		color: #fff;
		text-align: center;
		margin-bottom: 30px;
}
.points-value {
		font-size: 3rem;
		font-weight: 600;
		margin-bottom: 10px;
}
.points-label {
		font-size: 1.1rem;
		opacity: 0.9;
}
.points-history {
		display: flex;
		flex-direction: column;
		gap: 15px;
}
.points-item {
		background: #FFF5F7;
		border-radius: 10px;
		padding: 20px;
		display: flex;
		justify-content: space-between;
		align-items: center;
}
.points-item-info {
		flex: 1;
}
.points-item-title {
		font-size: 1rem;
		color: #333;
		margin-bottom: 5px;
}
.points-item-date {
		font-size: 1rem;
		color: #999;
}
.points-item-value {
		font-size: 1.3rem;
		font-weight: 600;
}
.points-item-value.positive {
		color: #4CAF50;
}
.points-item-value.negative {
		color: #F44336;
}
/* 好友推薦 */
.referral-card {
		background: linear-gradient(135deg, var(--primary-color) 0%, #E8B4BC 100%);
		border-radius: 15px;
		padding: 40px;
		color: #fff;
		margin-bottom: 30px;
}
.referral-title {
		font-size: 1.5rem;
		margin-bottom: 15px;
		font-weight: 500;
}
.referral-desc {
		font-size: 0.95rem;
		opacity: 0.9;
		margin-bottom: 25px;
}
.referral-code-wrapper {
		background: rgba(255, 255, 255, 0.2);
		border-radius: 10px;
		padding: 1rem;
		display: flex;
		justify-content: space-between;
		align-items: center;
}
.referral-code {
		font-size: 1rem;
		font-weight: 600;
		letter-spacing: 1px;
		max-width: calc(100% - 120px);
		display: inline-block;
		word-break: break-all;
}
.btn-copy-code {
		background: #fff;
		color: var(--primary-color);
		border: none;
		padding: 10px 10px;
		border-radius: 8px;
		cursor: pointer;
		transition: all 0.3s;
		font-weight: 500;
		min-width: 80px;
}
.btn-copy-code:hover {
		transform: translateY(-2px);
		box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}
.referral-stats {
		display: grid;
		grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
		gap: 20px;
		margin-top: 30px;
}
.referral-stat {
		text-align: center;
}
.referral-stat-value {
		font-size: 1.5rem;
		font-weight: 600;
		margin-bottom: 5px;
}
.referral-stat-label {
		font-size: 0.9rem;
		opacity: 0.9;
}
/* 電子發票 */
.invoice-list {
		display: flex;
		flex-direction: column;
		gap: 15px;
}
.invoice-item {
		background: #FFF5F7;
		border-radius: 10px;
		padding: 20px;
		display: flex;
		justify-content: space-between;
		align-items: center;
		transition: all 0.3s;
}
.invoice-item:hover {
		box-shadow: 0 4px 20px rgba(212, 165, 165, 0.15);
}
.invoice-info {
		flex: 1;
}
.invoice-number {
		font-size: 1rem;
		color: #333;
		margin-bottom: 5px;
		font-weight: 500;
}
.invoice-date {
		font-size: 1rem;
		color: #999;
}
.invoice-amount {
		font-size: 1.2rem;
		color: var(--primary-color);
		font-weight: 600;
		margin: 0 20px;
}
.btn-invoice-download {
		padding: 8px 20px;
		border: 1px solid var(--primary-color);
		background: #fff;
		color: var(--primary-color);
		border-radius: 6px;
		font-size: 1rem;
		cursor: pointer;
		transition: all 0.3s;
}
.btn-invoice-download:hover {
		background: var(--primary-color);
		color: #fff;
}
/* 客服紀錄 */
.contact-list {
		display: flex;
		flex-direction: column;
		gap: 20px;
}
.contact-item {
		background: #FFF5F7;
		border-radius: 12px;
		padding: 25px;
		transition: all 0.3s;
}
.contact-item:hover {
		box-shadow: 0 4px 20px rgba(212, 165, 165, 0.15);
}
.contact-header {
		display: flex;
		justify-content: space-between;
		align-items: center;
		margin-bottom: 15px;
		padding-bottom: 15px;
		border-bottom: 1px solid rgba(212, 165, 165, 0.2);
}
.contact-subject {
		font-size: 1.1rem;
		color: #333;
		font-weight: 500;
}
.contact-status {
		padding: 5px 15px;
		border-radius: 15px;
		font-size: 1rem;
		font-weight: 500;
}
.contact-status.pending {
		background: #FFF3CD;
		color: #856404;
}
.contact-status.replied {
		background: #D4EDDA;
		color: #155724;
}
.contact-status.closed {
		background: #E2E3E5;
		color: #383D41;
}
.contact-content {
		font-size: 0.95rem;
		color: #666;
		line-height: 1.6;
		margin-bottom: 15px;
}
.contact-footer {
		display: flex;
		justify-content: space-between;
		align-items: center;
		font-size: 1rem;
		color: #999;
}
.btn-contact-detail {
		padding: 8px 20px;
		border: 1px solid var(--primary-color);
		background: #fff;
		color: var(--primary-color);
		border-radius: 6px;
		font-size: 1rem;
		cursor: pointer;
		transition: all 0.3s;
}
.btn-contact-detail:hover {
		background: var(--primary-color);
		color: #fff;
}
/* 空狀態 */
.empty-state {
		text-align: center;
		padding: 60px 20px;
}
.empty-icon {
		font-size: 4rem;
		color: #E5E5E5;
		margin-bottom: 20px;
}
.empty-text {
		font-size: 1.1rem;
		color: #999;
		margin-bottom: 25px;
}
/* Table 樣式 */
.member-table {
		width: 100%;
		border-collapse: collapse;
		background: white;
		border-radius: 8px;
		overflow: hidden;
		box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}
.member-table thead {
		background: linear-gradient(135deg, var(--primary-color), var(--primary-color));
}
.member-table thead th {
		padding: .75rem .5rem;
		text-align: left;
		font-weight: 500;
		color: #ffffff;
		font-size: 0.85rem;
		text-wrap: nowrap;
}
.member-table tbody tr:not(.order-detail-row) td:last-child .btn-table-action {
		margin-bottom: 5px;
}
.member-table tbody tr {
		border-bottom: 1px solid #f0f0f0;
		transition: background-color 0.3s;
}
.member-table tbody tr:hover {
		background-color: #f8f9fa;
}
.member-table tbody tr:not(.order-detail-row) td {
		padding: 1rem .5rem;
		vertical-align: middle;
}
.member-table tbody tr:not(.order-detail-row) td:last-child {
		display: flex;
		flex-direction: column;
}
.order-product-mini {
		display: flex;
		align-items: center;
		gap: 10px;
}
.order-product-mini img {
		width: 50px;
		height: 50px;
		object-fit: cover;
		border-radius: 4px;
}
.order-product-mini small {
		color: #999;
		font-size: .85rem;
}
.status-badge {
		display: inline-block;
		padding: .25rem .5rem;
		border-radius: 20px;
		font-size: .85rem;
		font-weight: 500;
		margin: 2px;
}
/* 訂單狀態 */
.status-badge.shipping {
		background: #d1ecf1;
		color: #0c5460;
}
.status-badge.processing {
		background: #fff3cd;
		color: #856404;
}
.status-badge.pending {
		background: #fff3cd;
		color: #856404;
}
.status-badge.shipped {
		background: #d1ecf1;
		color: #0c5460;
}
.status-badge.completed {
		background: #d4edda;
		color: #155724;
}
.status-badge.cancelled {
		background: #f8d7da;
		color: #721c24;
}
/* 付款狀態 */
.status-badge.unpaid {
		background: #fff3cd;
		color: #856404;
}
.status-badge.paid {
		background: #d4edda;
		color: #155724;
}
.status-badge.failed {
		background: #f8d7da;
		color: #721c24;
}
.status-badge.refunded {
		background: #e2e3e5;
		color: #383d41;
}
.btn-table-action {
		padding: .25rem .5rem;
		border: 1px solid var(--primary-color);
		background: white;
		color: var(--primary-color);
		border-radius: 4px;
		font-size: .8125rem;
		cursor: pointer;
		transition: all 0.3s;
		margin-right: 5px;
		text-wrap: nowrap;
}
.btn-table-action:hover {
		background: var(--primary-color);
		color: white;
}
.btn-table-action.secondary {
		border-color: #6c757d;
		color: #6c757d;
}
.btn-table-action.secondary:hover {
		background: #6c757d;
		color: white;
}
.btn-table-action:disabled {
		opacity: 0.5;
		cursor: not-allowed;
}
.points-change {
		font-weight: 600;
}
.points-change.positive {
		color: #28a745;
}
.points-change.negative {
		color: #dc3545;
}
/* 地址 Modal 樣式 */
.address-modal {
		display: none;
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: rgba(0, 0, 0, 0.5);
		z-index: 9999;
		align-items: center;
		justify-content: center;
		backdrop-filter: blur(5px);
		animation: fadeIn 0.3s ease;
}
.address-modal.active {
		display: flex;
}
.address-modal-content {
		background: white;
		border-radius: 12px;
		padding: 30px;
		max-width: 600px;
		width: 90%;
		max-height: 90vh;
		overflow-y: auto;
		position: relative;
		animation: slideUp 0.3s ease;
}
.address-modal-close {
		position: absolute;
		top: 15px;
		right: 15px;
		background: none;
		border: none;
		font-size: 1.5rem;
		cursor: pointer;
		color: #999;
		transition: color 0.3s;
		width: 35px;
		height: 35px;
		display: flex;
		align-items: center;
		justify-content: center;
		border-radius: 50%;
}
.address-modal-close:hover {
		color: #333;
		background: #f0f0f0;
}
.address-modal-title {
		font-size: 1.5rem;
		font-weight: 600;
		margin-bottom: 25px;
		color: var(--primary-color);
}
.address-form .form-group {
		margin-bottom: 20px;
}
.address-form .form-label {
		display: block;
		margin-bottom: 8px;
		font-weight: 500;
		color: #333;
}
.address-form .text-danger {
		color: #dc3545;
}
.address-modal-actions {
		display: flex;
		gap: 10px;
		margin-top: 25px;
}
@keyframes slideUp {
		from {
				opacity: 0;
				transform: translateY(30px);
		}
		to {
				opacity: 1;
				transform: translateY(0);
		}
}
/* 響應式 */
@media (max-width: 991px) {
		.order-detail-content {
				padding: 20px 15px;
		}
		.order-detail-info {
				grid-template-columns: 1fr;
		}
		.detail-product-item img {
				width: 100%;
				height: auto;
				max-width: 100px;
		}
		.member-sidebar {
				position: static;
				margin-bottom: 30px;
		}
		.member-content {
				padding: 30px 20px;
		}
		.address-list, .favorite-grid {
				grid-template-columns: repeat(2, 1fr);
		}
		.table-responsive {
				overflow-x: auto;
		}
		.member-table {
				border: 0;
				box-shadow: none;
		}
		.member-table thead {
				display: none;
		}
		.member-table tbody tr:not(.order-detail-row) td {
				display: flex;
				justify-content: space-between;
				padding: 10px 15px;
				border-bottom: 1px solid #f0f0f0;
		}
		.member-table tbody td:last-child {
				border-bottom: 0;
		}
		.member-table tbody td::before {
				content: attr(data-label);
				font-weight: 600;
				margin-right: 0;
		}
		.member-section {
				padding-top: 60px;
				padding-bottom: 0;
				min-height: calc(100vh - 120px);
		}
		.member-section .col-lg-3 {
				order: 1;
		}
		.member-section .col-lg-9 {
				order: 0;
				margin-bottom: 3rem;
		}
		.member-table tbody tr:not(.order-detail-row) td:last-child {
				flex-direction: row;
		}
		.member-table tbody tr:not(.order-detail-row) td::before {
				flex: 1;
		}
}
@media (max-width: 767px) {
		.auth-logo h2 {
				font-size: 1.5rem;
		}
		.member-content-title {
				font-size: 1.25rem;
		}
		.member-content-subtitle {
				font-size: .85rem;
		}
}
@media (max-width: 576px) {
		.member-menu-link {
				padding: 10px 25px;
				font-size: .85rem;
		}
		.form-check-label, .form-label {
				font-size: .8125rem;
		}
		.auth-card .success-icon {
				width: 80px;
				height: 80px;
		}
		.auth-card .success-icon i {
				font-size: 2.5rem;
		}
		.success-title {
				font-size: 1.5rem;
		}
		.success-message {
				font-size: 1rem;
		}
		.success-actions {
				flex-direction: column;
		}
		.btn-success-primary, .btn-success-secondary {
				width: 100%;
		}
		.error-icon {
				width: 80px;
				height: 80px;
		}
		.error-icon i {
				font-size: 2.5rem;
		}
		.error-title {
				font-size: 1.5rem;
		}
		.error-message {
				font-size: 1rem;
		}
		.error-actions {
				flex-direction: column;
		}
		.btn-error-primary, .btn-error-secondary {
				width: 100%;
		}
		.phone-input-group {
				flex-direction: column;
		}
		.phone-input-group select {
				flex: 1;
				width: 100%;
		}
		.otp-input {
				width: 42px;
				height: 48px;
				font-size: 1.3rem;
		}
		.otp-input-group {
				gap: 0.3rem;
		}
		.referral-code-wrapper {
				flex-direction: column;
		}
		.referral-code {
				max-width: 100%;
				margin-bottom: 1rem;
		}
		.auth-card {
				padding: 2rem 1.5rem;
				max-width: 100%;
		}
		.record-grid {
				display: grid;
				grid-template-columns: repeat(2, 1fr);
				gap: 20px;
		}
		.member-card-wrapper {
				padding: 25px;
		}
		.order-product {
				flex-direction: column;
		}
		.order-footer {
				flex-direction: column;
				gap: 15px;
				align-items: flex-start;
		}
		.address-list, .favorite-grid {
				grid-template-columns: 1fr;
		}
		.invoice-item {
				flex-direction: column;
				gap: 15px;
				align-items: flex-start;
		}
		.invoice-amount {
				margin: 0;
		}
		.stat-icon {
				width: 30px;
				height: 30px;
				font-size: 1rem;
		}
		.stat-card {
				padding: .75rem;
		}
		.stat-value {
				font-size: 1rem;
		}
		.stat-label {
				font-size: .75rem;
		}
		.member-avatar {
				width: 60px;
				height: 60px;
		}
		.member-section {
				padding-top: 30px;
		}
		.auth-logo h2 {
				font-size: 1.25rem;
		}
		.price-row.total {
				font-size: 1rem;
		}
		.detail-product-item img {
				max-width: 80px;
		}
		.detail-product-item {
				display: grid;
				grid-template-columns: auto 1fr;
				grid-template-rows: auto auto;
				gap: 10px;
		}
		.detail-product-item > *:nth-child(3) {
				grid-column: 1 / -1;
				text-align: end;
		}
		.member-table {
				font-size: .8125rem;
		}
		.member-table .order-product-mini {
				font-size: .75rem;
		}
		.order-product-mini img {
				width: 40px;
				height: 40px;
		}
		.empty-state {
				padding: 30px 20px;
		}
		.empty-icon {
				font-size: 3rem;
		}
		.empty-text {
				font-size: 1rem;
		}
		.order-detail-section h4 {
				font-size: 1rem;
		}
		.info-label, .info-value {
				font-size: .85rem;
		}
}