/* ============================================
   西安辰航智能科技 · 企业邮箱
   登录页样式
   ============================================ */
:root{
  --brand:#1a2332;        /* 深蓝灰 */
  --brand-2:#243447;
  --brand-3:#2c4263;
  --accent:#2563eb;        /* 科技蓝 */
  --accent-2:#1d4ed8;
  --bg:#f5f7fa;
  --card:#ffffff;
  --line:#e2e8f0;
  --line-2:#edf1f5;
  --text:#1e293b;
  --text-2:#475569;
  --text-3:#94a3b8;
  --danger:#dc2626;
  --success:#059669;
  --shadow-sm:0 1px 2px rgba(15,23,42,.04);
  --shadow:0 10px 30px -10px rgba(15,23,42,.18);
  --shadow-lg:0 25px 50px -12px rgba(15,23,42,.25);
  --r:10px;
  --r-sm:6px;
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;background:var(--bg);color:var(--text);
  font-family:system-ui,-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;
  font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
button{font:inherit;cursor:pointer}

/* ====== 整体布局 ====== */
.login-wrap{
  display:grid;grid-template-columns:minmax(440px, 42%) 1fr;
  min-height:100vh;
  background:var(--bg);
}

/* ====== 左侧品牌区 ====== */
.brand-side{
  position:relative;overflow:hidden;color:#cbd5e1;
  background:linear-gradient(155deg,#0f172a 0%,#1a2332 50%,#243447 100%);
  display:flex;align-items:center;justify-content:center;padding:60px 56px;
}
.brand-bg{
  position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse 600px 400px at 20% 30%, rgba(37,99,235,.18), transparent 60%),
    radial-gradient(ellipse 500px 350px at 85% 80%, rgba(56,189,248,.10), transparent 60%);
}
.brand-bg::after{
  content:"";position:absolute;inset:0;opacity:.05;
  background-image:
    linear-gradient(rgba(255,255,255,.6) 1px,transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.6) 1px,transparent 1px);
  background-size:48px 48px;
}
.brand-inner{position:relative;z-index:1;width:100%;max-width:520px;display:flex;flex-direction:column;justify-content:center;gap:48px;flex:1}

.brand-header{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:#fff;text-align:center}
.brand-logo{width:64px;height:64px;flex-shrink:0;object-fit:contain}
.brand-text{text-align:center}
.brand-cn{
  font-size:28px;font-weight:700;letter-spacing:1.5px;color:#fff;white-space:nowrap;
  font-family:"STKaiti","KaiTi","楷体","Kaiti SC","Songti SC",serif;
}
.brand-en{
  font-size:14px;color:#94a3b8;letter-spacing:.5px;margin-top:4px;font-weight:400;white-space:nowrap;
  font-family:"STKaiti","KaiTi","楷体","Kaiti SC","Songti SC",serif;
}

.brand-hero{text-align:center}
.brand-hero h1{
  font-size:32px;font-weight:600;line-height:1.35;color:#fff;
  letter-spacing:.5px;
}
.brand-tagline{
  margin-top:24px;color:#94a3b8;font-size:17px;line-height:2;text-align:justify;
  text-indent:2em;max-width:480px;
}

.brand-features{list-style:none;display:flex;flex-direction:column;gap:24px;margin-top:12px;text-align:left}
.brand-features li{display:flex;gap:14px;align-items:flex-start;text-align:left}
.brand-features .ico{
  width:43.2px;height:43.2px;flex-shrink:0;border-radius:10.8px;
  display:flex;align-items:center;justify-content:center;
  background:rgba(37,99,235,.16);color:#60a5fa;font-size:21.6px;
  border:1px solid rgba(96,165,250,.25);
}
.brand-features b{display:block;color:#e2e8f0;font-size:14px;font-weight:600;margin-bottom:4px}
.brand-features small{color:#94a3b8;font-size:12.5px;line-height:1.65}

/* ====== 右侧表单区 ====== */
.form-side{display:flex;align-items:center;justify-content:center;padding:60px 24px}
.form-inner{width:100%;max-width:420px;display:flex;flex-direction:column;justify-content:center;gap:40px;flex:1}

.form-top{display:flex;align-items:center;justify-content:space-between}
.form-top-left{display:flex;align-items:center;gap:10px}
.form-logo{width:34px;height:34px;object-fit:contain}
.form-cn{font-weight:600;font-size:15px;color:var(--brand)}
.form-en{font-size:10.5px;color:var(--text-3);letter-spacing:.4px;margin-top:1px}
.back-home{
  display:inline-flex;align-items:center;gap:4px;
  font-size:14px;font-weight:600;color:var(--accent);
  padding:7px 16px;border-radius:20px;
  background:var(--accent-soft);border:1px solid #c7d2fe;
  transition:all .15s;
}
.back-home:hover{color:#fff;background:var(--accent);border-color:var(--accent);text-decoration:none}

.form-card{
  background:#fff;border-radius:14px;padding:40px 36px;
  box-shadow:var(--shadow);border:1px solid var(--line);
}
.form-card h2{font-size:24px;font-weight:600;color:var(--brand);letter-spacing:.5px}
.form-sub{margin-top:6px;color:var(--text-2);font-size:13.5px}

.field{margin-top:22px}
.field label{display:block;font-size:12.5px;color:var(--text-2);font-weight:500;margin-bottom:8px;letter-spacing:.2px}
.input-wrap{
  position:relative;display:flex;align-items:center;
  border:1.5px solid var(--line);border-radius:var(--r);
  background:#fff;transition:border-color .15s,box-shadow .15s;
}
.input-wrap:focus-within{
  border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(37,99,235,.10);
}
.input-ico{
  display:flex;align-items:center;justify-content:center;
  width:50.4px;color:var(--text-3);font-size:19.2px;flex-shrink:0;
}
.input-wrap input{
  flex:1;border:0;outline:0;background:transparent;
  padding:13px 12px 13px 0;font-size:14px;color:var(--text);
}
.input-wrap input::placeholder{color:#cbd5e1}
.toggle-pass{
  border:0;background:transparent;color:var(--text-3);
  padding:0 12px;font-size:16.8px;line-height:1;height:100%;
}
.toggle-pass:hover{color:var(--text-2)}

/* 验证码 */
.captcha-row{display:flex;gap:10px;align-items:center}
.captcha-input-wrap{flex:1}
.captcha-img{
  width:120px;height:44px;flex-shrink:0;border-radius:var(--r);cursor:pointer;
  border:1.5px solid var(--line);background:#f0f4f8;transition:border-color .15s;
}
.captcha-img:hover{border-color:var(--accent)}

.form-row{display:flex;align-items:center;justify-content:space-between;margin-top:18px;font-size:12.5px}
.check{display:flex;align-items:center;gap:6px;color:var(--text-2);cursor:pointer;user-select:none}
.check input{accent-color:var(--accent);width:14px;height:14px}
.link{color:var(--text-2);font-weight:500}
.link:hover{color:var(--accent)}

.btn-primary{
  margin-top:24px;width:100%;border:0;border-radius:var(--r);
  padding:13px;font-size:15px;font-weight:500;color:#fff;letter-spacing:1.5px;
  background:linear-gradient(180deg,var(--accent) 0%,var(--accent-2) 100%);
  box-shadow:0 4px 12px -2px rgba(37,99,235,.35);
  transition:transform .1s,box-shadow .15s,opacity .15s;
}
.btn-primary:hover{box-shadow:0 6px 16px -2px rgba(37,99,235,.45)}
.btn-primary:active{transform:translateY(1px)}
.btn-primary:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}
.btn-primary .btn-text{display:inline-flex;align-items:center;gap:8px}
.btn-primary.loading .btn-text::after{
  content:"";width:14px;height:14px;border-radius:50%;
  border:2px solid rgba(255,255,255,.4);border-top-color:#fff;
  animation:spin .8s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}

.msg{
  margin-top:14px;padding:10px 12px;border-radius:var(--r-sm);
  font-size:12.5px;display:flex;align-items:center;gap:8px;
}
.msg.error{background:#fef2f2;color:var(--danger);border:1px solid #fecaca}
.msg.success{background:#ecfdf5;color:var(--success);border:1px solid #a7f3d0}

/* 页脚 - 与官网一致的三行布局 */
.form-foot{text-align:center;color:#64748b;font-size:13px;line-height:2}
.form-foot .foot-copyright{color:#475569;font-weight:500}
.form-foot .foot-cert{
  color:#64748b;font-size:12.5px;margin-top:2px;
}
.form-foot .foot-bar{margin:0 8px;color:#cbd5e1;font-weight:300}
.form-foot .foot-cert span:not(.foot-bar){white-space:nowrap}
.form-foot .foot-links{
  margin-top:2px;font-size:12.5px;
}
.form-foot .foot-links a{color:#2563eb;font-weight:500;transition:color .15s}
.form-foot .foot-links a:hover{color:#1d4ed8;text-decoration:underline}
.form-foot .foot-sep{margin:0 6px;color:#cbd5e1}
.form-foot .foot-badge{
  width:16px;height:16px;display:inline-block;vertical-align:-3px;
  margin-right:4px;object-fit:contain;
}

/* ====== 响应式 ====== */
@media (max-width: 980px){
  .login-wrap{grid-template-columns:1fr;}
  .brand-side{display:none}
  .form-side{padding:24px 20px}
  .form-inner{min-height:100vh;justify-content:center}
}
@media (max-width: 480px){
  .form-card{padding:28px 22px}
  .form-card h2{font-size:21px}
}
