.login-page { display:flex; min-height:100vh; background:#fff; }

/* ===== 左侧品牌区 ===== */
.login-brand {
  flex: 1.1;
  position:relative;
  background: linear-gradient(135deg, #0F1A30 0%, #1A2A4A 50%, #0A4A8A 100%);
  color:#fff;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  padding: 56px 72px 40px;
}
.brand-bg {
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse at 20% 30%, rgba(30,136,255,0.4) 0%, transparent 50%),
    radial-gradient(ellipse at 80% 80%, rgba(139,92,246,0.3) 0%, transparent 50%),
    radial-gradient(ellipse at 50% 50%, rgba(79,172,254,0.2) 0%, transparent 70%);
  pointer-events:none;
}
.brand-bg::before {
  content:'';
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px);
  background-size: 40px 40px;
  background-position: -1px -1px;
}
.brand-bg::after {
  content:'';
  position:absolute;
  width:600px; height:600px;
  top:-200px; right:-200px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(30,136,255,0.3), transparent 60%);
  animation: float 8s ease-in-out infinite;
}
@keyframes float { 0%,100% { transform:translate(0,0); } 50% { transform:translate(-30px,30px); } }

.brand-overlay {
  position:absolute; inset:0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 200 200'%3E%3Cpath d='M40 100 L70 80 L70 120 Z' fill='rgba(255,255,255,0.03)'/%3E%3Ccircle cx='130' cy='100' r='20' fill='none' stroke='rgba(255,255,255,0.05)' stroke-width='1'/%3E%3Ccircle cx='130' cy='100' r='40' fill='none' stroke='rgba(255,255,255,0.04)' stroke-width='1'/%3E%3Ccircle cx='130' cy='100' r='60' fill='none' stroke='rgba(255,255,255,0.03)' stroke-width='1'/%3E%3C/svg%3E");
  background-position: center;
  background-repeat: no-repeat;
  background-size: 80%;
  opacity: 0.6;
  pointer-events:none;
}

.brand-content {
  position:relative; z-index:1;
  display:flex;
  flex-direction:column;
  flex:1;
  min-height:0;
}
.brand-logo { display:flex; align-items:center; gap:14px; flex-shrink:0; }
.brand-logo .logo-mark { width:44px; height:44px; font-size:20px; }
.brand-name { font-size:17px; font-weight:600; line-height:1.3; }
.brand-sub { font-size:11px; color: rgba(255,255,255,0.6); margin-top:2px; letter-spacing:0.5px; }

.brand-headline { margin-top: 48px; flex-shrink:0; }
.brand-headline h1 { font-size: 38px; font-weight: 700; line-height: 1.25; margin: 0 0 16px 0; letter-spacing: -0.5px; }
.brand-headline p { font-size: 14px; line-height: 1.7; color: rgba(255,255,255,0.7); margin: 0; }

.brand-features { margin-top: 36px; display:flex; flex-direction:column; gap:16px; flex-shrink:0; }
.brand-feature { display:flex; align-items:center; gap:14px; }
.feature-icon { width:40px; height:40px; background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.15); border-radius:9px; display:flex; align-items:center; justify-content:center; color:#4FACFE; flex-shrink:0; }
.feature-icon svg { width:18px; height:18px; }
.feature-title { font-size:14px; font-weight:500; margin-bottom:2px; }
.feature-desc { font-size:12px; color: rgba(255,255,255,0.6); }

.brand-footer { margin-top:auto; padding-top:20px; flex-shrink:0; }
.brand-stats { display:flex; gap:36px; padding-bottom: 14px; border-bottom: 1px solid rgba(255,255,255,0.1); }
.stat-value { font-size:20px; font-weight:600; line-height:1.2; }
.stat-label { font-size:11px; color: rgba(255,255,255,0.6); margin-top:2px; }
.brand-copyright { font-size:11px; color: rgba(255,255,255,0.4); margin-top:10px; }

/* ===== 右侧表单区 ===== */
.login-form-wrap { flex: 0.9; display:flex; align-items:center; justify-content:center; padding: 40px; background:#fff; overflow-y:auto; }
.login-form-inner { width:100%; max-width:420px; }
.login-alert { padding:10px 14px; border-radius:6px; font-size:13px; margin-bottom:20px; }
.login-alert-error { background:rgba(239,68,68,0.08); color:var(--danger); border:1px solid rgba(239,68,68,0.2); }
.login-alert-success { background:rgba(16,185,129,0.08); color:var(--success); border:1px solid rgba(16,185,129,0.2); }

.form-header { margin-bottom: 32px; }
.form-header h2 { font-size: 28px; font-weight: 600; color: var(--text-1); margin: 0 0 8px 0; }
.form-header p { font-size: 14px; color: var(--text-3); margin: 0; }

.login-form .form-group { margin-bottom: 18px; }
.login-form label { font-size: 13px; color: var(--text-2); display:block; margin-bottom: 6px; }
.label-row { display:flex; align-items:center; justify-content:space-between; }
.label-row label { margin-bottom: 0; }
.forgot-link { font-size: 12px; color: var(--primary); }

.input-wrap {
  display:flex; align-items:center; gap:8px;
  height:44px;
  padding: 0 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background:#fff;
  transition: all 0.15s;
}
.input-wrap:focus-within { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(30,136,255,0.1); }
.input-wrap svg { width:16px; height:16px; color: var(--text-4); flex-shrink:0; }
.input-wrap input { flex:1; border:none; outline:none; font-size:14px; color:var(--text-1); background:transparent; }
.toggle-pwd { background:transparent; border:none; color:var(--text-4); cursor:pointer; padding:4px; display:flex; }
.toggle-pwd svg { width:16px; height:16px; }

.form-row { display:flex; align-items:center; justify-content:space-between; margin: 8px 0 20px; }
.checkbox { display:flex; align-items:center; gap:6px; font-size:13px; color:var(--text-2); cursor:pointer; user-select:none; }
.checkbox input { width:14px; height:14px; accent-color: var(--primary); cursor:pointer; }

.btn-login {
  width:100%;
  height:46px;
  background: linear-gradient(135deg, var(--primary), var(--primary-light));
  color:#fff;
  border:none;
  border-radius: 8px;
  font-size: 15px;
  font-weight: 500;
  display:flex; align-items:center; justify-content:center; gap:8px;
  cursor:pointer;
  transition: all 0.15s;
  box-shadow: 0 4px 12px rgba(30,136,255,0.3);
}
.btn-login:hover { box-shadow: 0 6px 20px rgba(30,136,255,0.4); transform:translateY(-1px); }
.btn-login svg { width:16px; height:16px; }

.form-divider { display:flex; align-items:center; gap:12px; margin: 24px 0 16px; color:var(--text-4); font-size:12px; }
.form-divider::before, .form-divider::after { content:''; flex:1; height:1px; background:var(--border-light); }

.oauth-row { display:flex; gap:10px; justify-content:center; }
.oauth-btn {
  width:44px; height:44px;
  border:1px solid var(--border);
  background:#fff;
  border-radius:8px;
  color:var(--text-3);
  display:flex; align-items:center; justify-content:center;
  transition: all 0.15s;
}
.oauth-btn:hover { border-color:var(--primary); color:var(--primary); }
.oauth-btn svg { width:20px; height:20px; }

.form-footer { text-align:center; margin-top: 32px; font-size: 12px; color: var(--text-4); }
.form-footer a { color: var(--primary); }

@media (max-width: 1100px) {
  .login-brand { padding: 40px 40px 30px; }
  .brand-headline h1 { font-size: 28px; }
  .brand-features { margin-top: 28px; gap: 12px; }
  .brand-feature { gap: 10px; }
  .feature-icon { width: 36px; height: 36px; }
  .brand-stats { gap: 24px; }
  .stat-value { font-size: 17px; }
}
@media (max-width: 900px) {
  .login-page { flex-direction:column; }
  .login-brand { padding:30px 24px; min-height:0; }
  .brand-headline h1 { font-size: 24px; }
  .brand-features, .brand-footer { display:none; }
  .login-form-wrap { padding:30px; }
}
