/* Quant Edge authentication — login only. The authenticated application theme remains in styles.css. */
.qe-login-page{
  min-height:100vh;
  margin:0;
  background:#f5f8fc;
  color:#102d51;
  overflow-x:hidden;
}
.qe-login-shell{
  min-height:100vh;
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);
}

/* Brand side: a lightweight SVG-style market background, not a stock photo. */
.qe-login-brand{
  position:relative;
  min-height:100vh;
  overflow:hidden;
  background:#09213a;
  color:#fff;
}
.qe-market-art{
  position:absolute;
  inset:0;
  background-image:url('/static/login-market.svg');
  background-position:center;
  background-size:cover;
  opacity:.94;
}
.qe-login-brand:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(120deg,rgba(5,23,41,.98) 0%,rgba(7,33,58,.86) 48%,rgba(9,49,78,.58) 100%);
  pointer-events:none;
}
.qe-brand-content{
  position:relative;
  z-index:2;
  min-height:100vh;
  padding:42px 7vw 38px 7vw;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
}
.qe-brand-lockup,.qe-mobile-brand{
  display:flex;
  align-items:center;
  gap:11px;
  font-size:13px;
  letter-spacing:1.6px;
  font-weight:850;
}
.qe-brand-mark{
  width:34px;height:34px;border-radius:9px;
  display:flex;align-items:flex-end;justify-content:center;gap:3px;
  padding:7px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.13);
}
.qe-brand-mark i{display:block;width:4px;background:#55a9ff;border-radius:2px 2px 1px 1px}
.qe-brand-mark i:nth-child(1){height:8px}.qe-brand-mark i:nth-child(2){height:13px}.qe-brand-mark i:nth-child(3){height:18px}
.qe-brand-copy{max-width:650px;margin-top:auto;margin-bottom:auto;padding:70px 0 80px}
.qe-brand-eyebrow,.qe-login-kicker{
  font-size:9px;letter-spacing:1.9px;font-weight:800;color:#79b9f6;
}
.qe-brand-copy h1{
  margin:14px 0 18px;
  font-size:clamp(42px,5vw,72px);
  line-height:1.01;
  letter-spacing:-2.8px;
  font-weight:450;
}
.qe-brand-copy h1 strong{font-weight:800;color:#fff}
.qe-brand-copy p{
  max-width:500px;margin:0;color:rgba(231,242,252,.68);
  font-size:13px;line-height:1.75;
}
.qe-brand-meta{
  display:flex;gap:25px;align-items:center;
  color:rgba(230,241,252,.56);font-size:9px;letter-spacing:.4px;
}
.qe-brand-meta span{display:flex;align-items:center;gap:7px}
.qe-brand-meta i{width:7px;height:7px;border-radius:50%;background:#19bd87;box-shadow:0 0 0 4px rgba(25,189,135,.10)}

/* Form side */
.qe-login-form-side{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:34px clamp(25px,5vw,80px);
  background:#f8fafd;
}
.qe-login-card{width:min(410px,100%)}
.qe-mobile-brand{display:none;color:#173655;margin-bottom:42px}
.qe-mobile-brand .qe-brand-mark{background:#edf4fb;border-color:#dfeaf4}
.qe-login-heading{margin-bottom:27px}
.qe-login-heading h2{
  margin:9px 0 8px;font-size:31px;line-height:1.1;letter-spacing:-.8px;color:#102d51;
}
.qe-login-heading p{margin:0;color:#6c839e;font-size:12px;line-height:1.6}
.qe-login-form{display:flex;flex-direction:column;gap:18px}
.qe-field{display:flex;flex-direction:column;gap:7px}
.qe-field label{font-size:11px;font-weight:750;color:#294968}
.qe-field input{
  width:100%;height:46px;padding:0 13px;border:1px solid #dbe5ef;border-radius:8px;
  background:#fff;color:#173655;outline:none;font-size:12px;
  box-shadow:0 2px 7px rgba(49,90,133,.035);transition:border-color .15s,box-shadow .15s,background .15s;
}
.qe-field input::placeholder{color:#9aabbb}
.qe-field input:focus{
  border-color:#5a9ee4;box-shadow:0 0 0 3px rgba(22,121,239,.09);background:#fff;
}
.qe-field input.qe-invalid{border-color:#e26b6b;background:#fffafa;box-shadow:0 0 0 3px rgba(226,107,107,.07)}
.qe-field-label-row{display:flex;justify-content:space-between;align-items:center}
.qe-password-wrap{position:relative}
.qe-password-wrap input{padding-right:60px}
.qe-password-toggle{
  position:absolute;right:9px;top:50%;transform:translateY(-50%);
  border:0;background:transparent;color:#587694;font-size:10px;font-weight:700;padding:6px;cursor:pointer;
}
.qe-password-toggle:hover{color:#1679ef}
.qe-field-error{min-height:0;font-size:10px;line-height:1.35;color:#d65f5f}
.qe-field-error:empty{display:none}
.qe-form-message{
  padding:10px 12px;border-radius:8px;margin-bottom:18px;font-size:11px;line-height:1.4;
}
.qe-form-message.is-error{background:#fff2f2;border:1px solid #f1d2d2;color:#bd5555}
.qe-login-submit{
  width:100%;height:46px;margin-top:2px;border:0;border-radius:8px;
  background:#1679ef;color:#fff;display:flex;align-items:center;justify-content:center;gap:10px;
  font-size:11px;font-weight:800;letter-spacing:.1px;cursor:pointer;
  box-shadow:0 7px 17px rgba(22,121,239,.18);transition:transform .12s,background .12s,box-shadow .12s;
}
.qe-login-submit:hover{background:#0f6fdf;box-shadow:0 8px 20px rgba(22,121,239,.22)}
.qe-login-submit:active{transform:translateY(1px)}
.qe-login-submit:disabled{opacity:.72;cursor:wait}
.qe-login-arrow{font-size:16px;line-height:1;margin-top:-1px}
.qe-login-trust{
  display:flex;align-items:center;gap:8px;margin-top:23px;padding-top:17px;
  border-top:1px solid #e6edf4;color:#7a8ea4;font-size:9px;line-height:1.45;
}
.qe-lock-icon{width:17px;height:17px;border-radius:50%;display:grid;place-items:center;background:#e9f8f2;color:#0aa977;font-size:9px;font-weight:900;flex:none}
.qe-login-footer{margin-top:28px;color:#9aaabd;font-size:9px;text-align:center}

@media(max-width:900px){
  .qe-login-shell{grid-template-columns:1fr}
  .qe-login-brand{min-height:300px;height:38vh}
  .qe-brand-content{min-height:300px;height:100%;padding:28px 30px}
  .qe-brand-copy{padding:30px 0;margin:0;max-width:600px}
  .qe-brand-copy h1{font-size:42px;letter-spacing:-1.7px;margin:11px 0 12px}
  .qe-brand-copy p{font-size:11px;max-width:560px}
  .qe-brand-meta{display:none}
  .qe-login-form-side{min-height:62vh;padding:42px 25px}
}
@media(max-width:520px){
  .qe-login-brand{display:none}
  .qe-login-form-side{min-height:100vh;padding:25px 20px;align-items:flex-start}
  .qe-login-card{padding-top:10vh}
  .qe-mobile-brand{display:flex;margin-bottom:46px}
  .qe-login-heading h2{font-size:28px}
  .qe-login-heading{margin-bottom:24px}
}
