:root {
  --bg: #f2f6fb;
  --ink: #12213a;
  --muted: #66758c;
  --faint: #91a0b4;
  --line: #dfe7f1;
  --blue: #246bfd;
  --blue-soft: #eaf2ff;
  --red: #b64f4a;
  --red-soft: #fff0ee;
}

* { box-sizing: border-box; }

html {
  font-family: "MiSans", "HarmonyOS Sans SC", "Microsoft YaHei UI", "PingFang SC", sans-serif;
  color: var(--ink);
  background: var(--bg);
}

body {
  margin: 0; min-height: 100vh; display: grid; place-items: center; padding: 32px;
  background: radial-gradient(circle at 84% 6%, rgba(36,107,253,.10), transparent 30rem), var(--bg);
}

button, input, select { font: inherit; }

.login-shell {
  width: min(1020px, 100%); min-height: 590px; display: grid; grid-template-columns: 1.06fr .94fr;
  border-radius: 18px; overflow: hidden; background: #fff;
  box-shadow: 0 30px 70px rgba(16, 46, 88, .13); border: 1px solid var(--line);
}

.brand-panel {
  position: relative; overflow: hidden; padding: 56px 52px; color: #eaf3ff;
  background: linear-gradient(180deg, #123f73 0%, #0d315b 100%);
}
.ops .brand-panel { background: linear-gradient(180deg, #0a1930 0%, #071426 100%); }
.brand-panel:after {
  content: "玄"; position: absolute; right: -40px; bottom: -104px;
  font: 360px/1 "STSong", serif; color: rgba(255,255,255,.04);
}

.brand-mark {
  width: 46px; height: 46px; border-radius: 14px; display: grid; place-items: center;
  color: #fff; background: linear-gradient(145deg, #4389ff, #1f65e9);
  box-shadow: 0 8px 22px rgba(20, 92, 220, .3); font: 700 23px/1 "STSong", serif;
}
.ops .brand-mark { background: linear-gradient(145deg, #2e5f9e, #1b3f74); }

.eyebrow {
  margin: 26px 0 14px; color: #8fb7eb;
  font: 700 10px/1 "Bahnschrift", sans-serif; letter-spacing: .2em; text-transform: uppercase;
}
.brand-panel h1 { position: relative; margin: 0 0 22px; font-size: 38px; line-height: 1.32; font-weight: 600; letter-spacing: -.02em; color: #fff; }
.brand-copy { position: relative; max-width: 400px; margin: 0; color: #b9d2ee; font-size: 13px; line-height: 2; }
.brand-note {
  position: absolute; left: 52px; bottom: 44px; color: #7ba0cd;
  font: 10px/1.6 "Bahnschrift", sans-serif; letter-spacing: .1em;
}

.login-card { padding: 56px 48px; display: flex; flex-direction: column; justify-content: center; }
.login-card .eyebrow { margin-top: 0; color: #2870e8; }
.login-card h2 { margin: 0 0 7px; font-size: 26px; letter-spacing: -.02em; }
.muted { color: var(--muted); font-size: 12px; margin: 0; }

.alert {
  margin: 22px 0 -6px; padding: 12px 14px; border-radius: 10px;
  color: #9c4038; background: var(--red-soft); border: 1px solid #f0d3cf; font-size: 12px;
}

.login-form { display: grid; gap: 17px; margin-top: 30px; }
.login-form label { display: grid; gap: 7px; color: #47566f; font-size: 11px; font-weight: 600; }
.login-form input {
  width: 100%; height: 42px; padding: 0 13px; color: var(--ink); background: #fff;
  border: 1px solid #dbe3ee; border-radius: 10px; font-size: 13px; outline: none;
}
.login-form input:focus { border-color: #9dc0f8; box-shadow: 0 0 0 3px rgba(36,107,253,.11); }

.login-form button {
  height: 44px; margin-top: 6px; display: flex; align-items: center; justify-content: space-between;
  padding: 0 18px; color: #fff; background: var(--blue); border: 0; border-radius: 10px;
  font-size: 13px; cursor: pointer; box-shadow: 0 8px 20px rgba(36,107,253,.2);
}
.login-form button:hover { background: #1a5ce8; }
.ops .login-form button { background: #1c3457; box-shadow: 0 8px 20px rgba(28,52,87,.2); }
.ops .login-form button:hover { background: #142743; }

.fine-print { margin: 26px 0 0; color: var(--faint); font-size: 10px; line-height: 1.8; }

@media (max-width: 860px) {
  body { padding: 0; place-items: stretch; }
  .login-shell { grid-template-columns: minmax(0,1fr); min-height: 100vh; border-radius: 0; border: 0; }
  .brand-panel { padding: 38px 28px; }
  .brand-panel h1 { font-size: 27px; margin-bottom: 16px; }
  .brand-note { display: none; }
  .login-card { padding: 38px 28px; }
}
