/*
 * ca-login-modal.css — 品牌登录 Modal
 * Humi Gold #c39d52 主题，Zero external deps
 */
.ca-login-overlay {
	position: fixed; inset: 0; z-index: 99999;
	background: rgba(0,0,0,.5); display: flex; align-items: center; justify-content: center;
	-webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
	animation: caFadeIn .2s ease;
}
.ca-login-card {
	background: #fff; border-radius: 14px; padding: 40px 32px;
	max-width: 400px; width: 90vw; position: relative; text-align: center;
	box-shadow: 0 20px 60px rgba(0,0,0,.2);
	animation: caSlideUp .25s ease;
}
.ca-login-close {
	position: absolute; top: 12px; right: 18px; font-size: 24px; color: #94a3b8;
	cursor: pointer; line-height: 1; transition: color .15s;
}
.ca-login-close:hover { color: #c39d52; }
.ca-login-avatar {
	width: 56px; height: 56px; border-radius: 50%; margin-bottom: 12px;
	border: 2px solid #c39d52;
}
.ca-login-logo {
	max-width: 120px; max-height: 56px; object-fit: contain; margin-bottom: 12px;
	animation: caPulse 3s ease-in-out infinite;
}
.ca-login-brand {
	font-size: 16px; font-weight: 700; color: #1f2328; margin-bottom: 24px;
}
.ca-login-card .login-username,
.ca-login-card .login-password,
.ca-login-card .login-remember {
	margin-bottom: 14px; text-align: left;
}
.ca-login-card .login-username label,
.ca-login-card .login-password label {
	display: block; font-size: 13px; color: #495057; margin-bottom: 4px; font-weight: 600;
}
.ca-login-card .login-username input,
.ca-login-card .login-password input {
	width: 100%; padding: 10px 14px; border: 1px solid #e9ecef; border-radius: 8px;
	font-size: 14px; box-sizing: border-box; font-family: inherit;
}
.ca-login-card .login-username input:focus,
.ca-login-card .login-password input:focus {
	border-color: #c39d52; outline: none; box-shadow: 0 0 0 3px rgba(195,157,82,.1);
}
.ca-login-card .login-remember {
	font-size: 13px; color: #495057; display: flex; align-items: center; gap: 6px;
}
.ca-login-card .login-submit { margin-top: 8px; }
.ca-login-card .login-submit .button {
	width: 100%; padding: 12px; background: #c39d52; color: #fff; border: none;
	border-radius: 8px; font-size: 15px; font-weight: 700; cursor: pointer;
	box-shadow: 0 4px 12px rgba(195,157,82,.25); transition: all .2s;
	font-family: inherit;
}
.ca-login-card .login-submit .button:hover { background: #b89342; }
.ca-login-links { margin-top: 16px; font-size: 13px; }
.ca-login-links a { color: #c39d52; font-weight: 600; text-decoration: none; }
.ca-login-links a:hover { text-decoration: underline; }

/* Tab Navigation */
.ca-login-tabs {
	display: flex; gap: 0; margin-bottom: 20px;
	border-bottom: 2px solid #e9ecef;
}
.ca-login-tab {
	flex: 1; padding: 10px 12px; border: none; background: none;
	font-size: 13px; font-weight: 600; color: #64748b; cursor: pointer;
	border-bottom: 2px solid transparent; margin-bottom: -2px;
	transition: all .15s; font-family: inherit;
}
.ca-login-tab.active { color: #c39d52; border-bottom-color: #c39d52; }
.ca-login-tab:hover { color: #c39d52; }

/* Register messages */
.ca-register-msg {
	margin-bottom: 14px; padding: 10px 14px; border-radius: 8px; font-size: 13px;
	display: none;
}
.ca-register-msg.error { display: block; background: #fef2f2; color: #dc2626; border: 1px solid #fecaca; }
.ca-register-msg.success { display: block; background: #f0fdf4; color: #16a34a; border: 1px solid #bbf7d0; }

/* Loading state */
.ca-login-card .login-submit .button.ca-loading {
	opacity: .7; pointer-events: none; position: relative;
}
.ca-login-card .login-submit .button.ca-loading::after {
	content: ''; display: inline-block; width: 14px; height: 14px;
	border: 2px solid #fff; border-top-color: transparent; border-radius: 50%;
	animation: caSpin .6s linear infinite; margin-left: 8px; vertical-align: middle;
}
@keyframes caSpin { to { transform: rotate(360deg) } }

/* Messages */
.ca-login-card .login-msg {
	margin-bottom: 14px; padding: 10px 14px; border-radius: 8px; font-size: 13px; text-align: left;
}
.ca-login-card .login-msg.message { background: #fefce8; color: #d97706; border: 1px solid #fde68a; }
.ca-login-card .login-msg.error { background: #fef2f2; color: #dc2626; border: 1px solid #fecaca; }

@keyframes caFadeIn { from { opacity: 0 } to { opacity: 1 } }
@keyframes caSlideUp { from { opacity: 0; transform: translateY(16px) } to { opacity: 1; transform: translateY(0) } }
@keyframes caPulse { 0%,100% { transform: scale(1) } 50% { transform: scale(1.04) } }
