:root{--bg:#eef4ff;--card:#fff;--text:#17233f;--muted:#60708f;--blue:#2f63e6;--blue2:#1f4fd0;--border:#cfdaef;--danger:#b42318;--ok:#027a48;}

*{box-sizing:border-box}

.ben-login-page{
  margin:0;
  min-height:100vh;
  font-family:Inter,Segoe UI,Arial,sans-serif;
  color:var(--text);
  background:linear-gradient(135deg,#0f172a,#1d4ed8,#3b82f6,#0f172a);
  background-size:300% 300%;
  animation:benGradientShift 18s ease infinite;
  overflow:hidden;
}

.ben-login-page::before{
  content:"";
  position:fixed;
  inset:-20%;
  background:
    radial-gradient(circle at 20% 20%,rgba(96,165,250,.42),transparent 28%),
    radial-gradient(circle at 80% 30%,rgba(59,130,246,.34),transparent 30%),
    radial-gradient(circle at 50% 85%,rgba(30,64,175,.45),transparent 32%);
  animation:benGlowFloat 24s ease-in-out infinite alternate;
  z-index:0;
}

.ben-login-page::after{
  content:"";
  position:fixed;
  inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.055) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.055) 1px,transparent 1px);
  background-size:44px 44px;
  mask-image:linear-gradient(to bottom,rgba(0,0,0,.45),transparent 78%);
  z-index:0;
}

.ben-login-shell{
  position:relative;
  z-index:1;
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:28px;
}

.ben-login-panel{
  width:min(440px,100%);
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.55);
  box-shadow:0 28px 90px rgba(0,0,0,.32);
  border-radius:28px;
  padding:36px;
}

.ben-brand-mark{
  width:62px;
  height:62px;
  border-radius:20px;
  background:linear-gradient(135deg,var(--blue),#7aa2ff);
  color:white;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  font-size:23px;
  margin-bottom:18px;
  box-shadow:0 14px 32px rgba(47,99,230,.42);
}

.ben-login-panel h1{
  font-size:34px;
  line-height:1;
  margin:0 0 8px;
  letter-spacing:-.03em;
}

.ben-subtitle{
  margin:0 0 28px;
  color:var(--muted);
  font-size:16px;
}

.ben-login-form{
  display:grid;
  gap:10px;
}

.ben-login-form label{
  font-weight:700;
  font-size:13px;
  color:#3c4a65;
  margin-top:4px;
}

.ben-login-form input{
  width:100%;
  height:52px;
  border:1px solid var(--border);
  border-radius:16px;
  padding:0 16px;
  font-size:16px;
  background:#fff;
  outline:none;
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease;
}

.ben-login-form input:focus{
  border-color:var(--blue);
  box-shadow:0 0 0 4px rgba(47,99,230,.13);
  transform:translateY(-1px);
}

.ben-login-form button{
  height:54px;
  border:0;
  border-radius:16px;
  background:linear-gradient(135deg,var(--blue),var(--blue2));
  color:white;
  font-weight:800;
  font-size:16px;
  margin-top:12px;
  cursor:pointer;
  box-shadow:0 14px 28px rgba(47,99,230,.28);
  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
}

.ben-login-form button:hover{
  transform:translateY(-1px);
  box-shadow:0 18px 34px rgba(47,99,230,.34);
  filter:brightness(1.03);
}

.ben-login-form button:active{
  transform:translateY(0);
}

.ben-login-form button:disabled{
  opacity:.65;
  cursor:not-allowed;
}

.ben-login-message{
  min-height:22px;
  margin-top:8px;
  font-size:14px;
  color:var(--muted);
  word-break:break-word;
}

.ben-login-message.error{color:var(--danger)}
.ben-login-message.success{color:var(--ok)}

@keyframes benGradientShift{
  0%{background-position:0% 50%}
  50%{background-position:100% 50%}
  100%{background-position:0% 50%}
}

@keyframes benGlowFloat{
  0%{transform:translate3d(-2%,0,0) scale(1)}
  100%{transform:translate3d(2%,-2%,0) scale(1.04)}
}

@media (prefers-reduced-motion:reduce){
  .ben-login-page,
  .ben-login-page::before{
    animation:none;
  }
}