/* DeepFupan v0.5.1 brand + mobile login fix */
:root{
  --dfp-brand-blue:#8fdcff;
  --dfp-brand-green:#00a944;
  --dfp-brand-red:#ef2b2d;
}
.dfp-brand-word{
  display:inline-flex;
  align-items:baseline;
  white-space:nowrap;
  letter-spacing:.04em;
  font-weight:900;
  line-height:1;
}
.dfp-brand-blue{color:var(--dfp-brand-blue)!important;}
.dfp-brand-green{color:var(--dfp-brand-green)!important;}
.dfp-brand-red{color:var(--dfp-brand-red)!important;}
.dfp-brand-word .dfp-brand-green,
.dfp-brand-word .dfp-brand-red{font-weight:950;}

/* login form: force account row and password row to be separated */
.dfp-auth-form,
.auth-card form,
.login-card form,
.login-panel form,
form.dfp-login-normalized{
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  gap:16px!important;
  width:100%!important;
  max-width:720px!important;
}
.dfp-login-row{
  display:grid!important;
  grid-template-columns:72px minmax(0,1fr)!important;
  gap:12px!important;
  align-items:center!important;
  width:100%!important;
}
.dfp-login-row label,
.dfp-login-label{
  color:rgba(232,241,255,.92)!important;
  font-size:18px!important;
  font-weight:800!important;
  white-space:nowrap!important;
}
.dfp-login-row input,
.dfp-password-wrap input{
  width:100%!important;
  min-width:0!important;
  height:48px!important;
  box-sizing:border-box!important;
  border-radius:8px!important;
  border:1px solid rgba(160,180,210,.45)!important;
  background:#ffffff!important;
  color:#111827!important;
  font-size:16px!important; /* prevent mobile browser zoom */
  padding:0 14px!important;
}
.dfp-password-wrap{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  width:100%!important;
}
.dfp-password-wrap input{
  padding-right:88px!important;
}
.dfp-password-toggle{
  position:absolute!important;
  right:8px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  height:34px!important;
  padding:0 12px!important;
  border-radius:8px!important;
  border:1px solid rgba(9,148,165,.45)!important;
  background:rgba(9,148,165,.12)!important;
  color:#0f6f7c!important;
  font-size:14px!important;
  font-weight:800!important;
  line-height:32px!important;
  cursor:pointer!important;
}
.dfp-login-actions{
  display:flex!important;
  justify-content:flex-start!important;
  padding-left:84px!important;
  gap:12px!important;
}
.dfp-login-actions button,
.dfp-login-actions input[type="submit"]{
  min-width:128px!important;
  height:52px!important;
  border-radius:16px!important;
}

/* mobile: prioritize system title, avoid keyboard overlap */
@media (max-width: 760px){
  html,body{
    min-height:100%;
    overflow-x:hidden!important;
  }
  body{
    padding-bottom:calc(110px + env(safe-area-inset-bottom))!important;
  }
  .app-shell,.layout,.page-shell,.main-wrap{
    width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
  }
  .sidebar .logo-card,
  .sidebar .brand-card,
  aside .logo-card,
  aside .brand-card{
    display:none!important;
  }
  .hero-card,.top-hero,.page-hero,.system-hero{
    margin-top:16px!important;
  }
  .hero-card h1,.top-hero h1,.page-hero h1,.system-hero h1{
    font-size:34px!important;
    line-height:1.28!important;
    word-break:keep-all!important;
  }
  .hero-card h1 .dfp-brand-word,
  .top-hero h1 .dfp-brand-word,
  .page-hero h1 .dfp-brand-word,
  .system-hero h1 .dfp-brand-word{
    font-size:inherit!important;
    margin-right:.04em!important;
  }
  .dfp-auth-form,
  form.dfp-login-normalized{
    gap:18px!important;
    max-width:100%!important;
    scroll-margin-bottom:260px!important;
  }
  .dfp-login-row{
    grid-template-columns:1fr!important;
    gap:8px!important;
  }
  .dfp-login-row label,
  .dfp-login-label{
    font-size:18px!important;
  }
  .dfp-login-row input,
  .dfp-password-wrap input{
    height:50px!important;
    font-size:16px!important;
  }
  .dfp-login-actions{
    padding-left:0!important;
  }
  .dfp-login-actions button,
  .dfp-login-actions input[type="submit"]{
    width:100%!important;
    min-width:0!important;
  }
  .dfp-keyboard-spacer{
    height:280px!important;
  }
}
