/* Demo login: standalone exact owner-selected RUL light presentation, independent of app themes.
   Legacy login CSS URLs serve this same file for backward compatibility.
   No dashboard selectors, theme variables, entry animation or theme loader. */
@font-face {
  font-family: "OT Login Display";
  src: url("/static/v2_4/fonts/YouSheBiaoTiHei.ttf") format("truetype");
  font-weight: 400 900;
  font-style: normal;
  font-display: block;
}
html:has(body.ot-login-body) { color-scheme: light; }
html body.ot-login-body {
  margin: 0 !important;
  min-height: 100vh !important;
  display: flex !important;
  flex-direction: column !important;
  background: #001E44 !important;
  color: #0D1117 !important;
  font: 400 12px/1.35 "Helvetica Neue", Arial, sans-serif !important;
  position: relative;
  overflow-x: hidden;
  color-scheme: light;
}
html body.ot-login-body *, html body.ot-login-body *::before, html body.ot-login-body *::after { box-sizing: border-box; }
html body.ot-login-body::before {
  content: ""; position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background: radial-gradient(ellipse 120% 80% at 25% 20%, rgba(0,168,203,.08) 0%, transparent 60%), radial-gradient(ellipse 100% 100% at 75% 80%, rgba(0,47,101,.35) 0%, transparent 50%), linear-gradient(165deg,#001E44 0%,#002F65 70%,#001E44 100%);
}
html body.ot-login-body::after {
  content: ""; position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background-image: linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);
  background-size: 80px 80px;
}
html body.ot-login-body .ot-login-shell {
  flex: 1; display: flex; align-items: center; justify-content: center;
  width: min(1680px,calc(100vw - 2 * clamp(10px,1.25vw,24px))) !important;
  max-width: none !important; margin: 0 auto !important; padding: 40px 24px !important;
  position: relative; z-index: 1;
}
html body.ot-login-body .ot-login-shell::before {
  content: ""; position: fixed; width: 600px; height: 600px; border-radius: 50%;
  background: radial-gradient(circle,rgba(0,168,203,.06) 0%,transparent 70%);
  top: -10%; right: -8%; z-index: 0; pointer-events: none; animation: none !important;
}
html body.ot-login-body .ot-login-card {
  width: 100% !important; max-width: 440px !important; border: 0 !important; border-radius: 0 !important;
  background: #fff !important; overflow: hidden; position: relative; z-index: 2;
  box-shadow: 0 0 0 1px rgba(255,255,255,.06),0 24px 80px rgba(0,10,30,.45),0 8px 24px rgba(0,10,30,.20);
  animation: none !important;
}
html body.ot-login-body .ot-login-card__header {
  background: linear-gradient(135deg,#001E44 0%,#002F65 50%,#001E44 100%) !important;
  color: #fff !important; padding: 32px 36px 28px !important; text-align: center;
  border-bottom: 3px solid #00A8CB; position: relative;
}
html body.ot-login-body .ot-login-card__logo { height: 32px; margin-bottom: 16px; }
html body.ot-login-body .ot-login-card__header .ot-eyebrow {
  margin: 0 !important; color: #00A8CB !important; font-size: 9px !important;
  font-weight: 700; letter-spacing: .13em; line-height: 1.1; text-transform: uppercase;
}
html body.ot-login-body .ot-login-card__header h1 {
  font-family: "OT Login Display","Helvetica Neue",Arial,sans-serif !important;
  font-size: 30px !important; font-weight: 400 !important; font-style: normal;
  line-height: 1.35 !important; letter-spacing: .4px; color: #002F65 !important; margin: 8px 0 4px !important;
}
html body.ot-login-body .ot-login-card__subtitle { font-size: 13px !important; color: #E0F6FB !important; margin: 0 !important; line-height: 1.35; }
html body.ot-login-body .ot-login-card__body { background: #fff !important; color: #0D1117 !important; padding: 28px 36px 32px !important; }
html body.ot-login-body .ot-login-field { margin-bottom: 18px; }
html body.ot-login-body .ot-login-field label {
  display: block; font: 700 10px/1.35 "Helvetica Neue",Arial,sans-serif !important;
  color: #002F65 !important; text-transform: uppercase; letter-spacing: .1em; margin-bottom: 6px;
}
html body.ot-login-body .ot-login-field input {
  width: 100% !important; min-height: 34px !important; min-width: 0;
  border: 1px solid #D8D3CC !important; border-radius: 3px !important; padding: 5px 8px !important;
  color: #0D1117 !important; background: #fff !important; font: 400 11.5px/normal "Helvetica Neue",Arial,sans-serif !important;
}
html body.ot-login-body .ot-login-field input:focus { outline: 2px solid #00A8CB; outline-offset: -1px; }
html body.ot-login-body .ot-login-error {
  display: none; background: #F6F8FA; border-left: 3px solid #002F65; padding: 10px 12px;
  margin-bottom: 18px; color: #1C2333; font-size: 13px;
}
html body.ot-login-body .ot-login-error.show { display: block; }
html body.ot-login-body .ot-login-submit {
  display: inline-block; width: 100% !important; min-height: 30px !important;
  background: #002F65 !important; color: #fff !important; border: 1px solid #002F65 !important;
  border-radius: 9px !important; padding: 6px 10px !important; cursor: pointer;
  font: 700 11px/1 "Helvetica Neue",Arial,sans-serif !important; letter-spacing: .08em; text-transform: uppercase;
}
html body.ot-login-body .ot-login-submit:hover { background: #001E44 !important; }
html body.ot-login-body .ot-login-submit:disabled, html body.ot-login-body .ot-login-submit.loading { background: #6B7280 !important; cursor: not-allowed; }
html body.ot-login-body .ot-login-submit:focus-visible { outline: 3px solid #00A8CB; outline-offset: 3px; }
html body.ot-login-body .ot-login-card__legal { text-align: center; margin: 20px 0 0; font-size: 11px; line-height: 1.35; color: #6B7280 !important; }
html body.ot-login-body .ot-login-card__legal a { color: #002F65 !important; text-decoration: none; }
/* Preserve the reference page's vertical balance without a hidden duplicate footer. */
html body.ot-login-body .ot-login-spacer { flex: 0 0 auto; padding: 12px 16px; border-top: 1px solid transparent; font: 400 11px/1.35 "Helvetica Neue",Arial,sans-serif; }
html body.ot-login-body .ot-login-spacer::before { content: ""; display: block; height: 1.35em; }
@media (max-width:480px) {
  html body.ot-login-body .ot-login-shell { width: 100% !important; padding: 24px 16px !important; align-items: center; }
  html body.ot-login-body .ot-login-card__header { padding: 28px 24px 22px !important; }
  html body.ot-login-body .ot-login-card__body { padding: 24px !important; }
  html body.ot-login-body .ot-login-field input { font-size: 16px !important; min-height: 44px !important; }
  html body.ot-login-body .ot-login-submit { min-height: 44px !important; }
  html body.ot-login-body .ot-login-spacer { display: none; }
}
