:root{
  --card-bg: #ffffff;
  --muted: #9aa0a6;
  --accent1: #7b46ff;
  --accent2: #ffb86b;
  --accent-gradient: linear-gradient(135deg,var(--accent1) 0%, #8b5cff 40%, var(--accent2) 100%);
  --input-border: #e6e6e8;
  --radius: 12px;
  --shadow: 0 20px 40px rgba(30,30,40,0.08);
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial;
}

.auth-page{
  min-height: calc(100vh - 120px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:40px 20px;
  background: #fbf8fb;
}

.auth-card{
  width: 100%;
  max-width: 1040px;
  background: var(--card-bg);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  overflow: hidden;
  display: flex;
  min-height: 520px;
}

/* Left panel (graphic) */
.auth-left{
  flex: 1 1 48%;
  min-width: 320px;
  position: relative;
  color: white;
  padding: 44px 36px;
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
  background: var(--accent-gradient);
  background-size: 200% 200%;
}

/* Decorative blobs */
.auth-left::before,
.auth-left::after{
  content: "";
  position: absolute;
  border-radius: 50%;
  filter: blur(32px);
  opacity: 0.35;
}
.auth-left::before{
  width: 380px;
  height: 420px;
  right: -120px;
  bottom: -80px;
  background: rgba(255,255,255,0.18);
  transform: rotate(20deg);
}
.auth-left::after{
  width: 260px;
  height: 260px;
  left: -80px;
  top: -80px;
  background: rgba(255,255,255,0.12);
}

/* logo and heading */
.auth-logo{
  font-weight:800;
  letter-spacing: 0.6px;
  margin-bottom: auto;
}
.auth-left .welcome{
  margin-top: auto;
  font-size: 54px;
  line-height: 0.98;
  font-weight: 800;
  margin-bottom: 36px;
  text-shadow: 0 4px 18px rgba(0,0,0,0.06);
}

.auth-left .sub{
  font-weight:600;
  opacity:0.95;
  font-size: 14px;
}

/* Right panel (form) */
.auth-right{
  flex: 1 1 52%;
  padding: 48px 56px;
  display:flex;
  align-items:center;
  justify-content:center;
  background: #ffffff;
}

.auth-form{
  width:100%;
  max-width: 380px;
}

.auth-form h2{
  margin: 0 0 8px 0;
  font-size: 28px;
  font-weight: 800;
  color: #222;
}

.auth-form p.lead{
  margin: 0 0 22px 0;
  color: var(--muted);
  font-size: 13px;
}

/* Inputs */
.form-row{
  margin-bottom: 14px;
  display:block;
}
.form-row label{
  display:block;
  font-size: 13px;
  color: #6b6f75;
  margin-bottom: 8px;
  font-weight: 600;
}
.form-row input[type="text"],
.form-row input[type="password"],
.form-row input[type="email"]{
  width:100%;
  height:44px;
  padding:10px 12px;
  border-radius:8px;
  border:1px solid var(--input-border);
  background:#fff;
  font-size:14px;
  box-sizing:border-box;
  outline:none;
  transition: box-shadow .15s ease, border-color .15s ease;
}
.form-row input:focus{
  border-color: rgba(123,70,255,0.9);
  box-shadow: 0 6px 18px rgba(123,70,255,0.08);
}

/* utility row */
.util-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin: 12px 0 22px 0;
}
.checkbox{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:13px;
  color:#5f6468;
}
.checkbox input{ width:16px; height:16px; accent-color: #7b46ff; border-radius:4px; }

.forgot {
  font-size:13px;
  color:#8b8fa6;
  text-decoration:none;
}
.forgot:hover{ text-decoration:underline; color:#6b6bff; }

/* Button */
.login-page .btn-primary{
  width:100%;
  height:48px;
  border-radius:10px;
  border:0;
  font-weight:700;
  font-size:15px;
  cursor:pointer;
  background: linear-gradient(90deg,#7b46ff 0%, #9b66ff 40%, #ffb86b 100%);
  color:white;
  box-shadow: 0 10px 24px rgba(123,70,255,0.12);
  transition: transform .12s ease, box-shadow .12s ease;
}
.login-page .btn-primary:active{ transform: translateY(1px); }
.login-page .btn-primary[disabled]{ opacity:0.6; cursor:not-allowed; }

/* error */
.error{
  background: #fff0f2;
  color:#a21e4d;
  border:1px solid rgba(162,30,77,0.08);
  padding:10px 12px;
  border-radius:8px;
  margin: 12px 0;
  font-size:13px;
}

/* small link area */
.form-foot{
  margin-top:18px;
  font-size:13px;
  color:#7c7f86;
  text-align:center;
}

/* responsive */
@media (max-width: 880px){
  .auth-card{ flex-direction: column; max-width: 880px; }
  .auth-left, .auth-right{ min-width: auto; width:100%; }
  .auth-left{ padding:30px; min-height:210px; }
  .auth-left .welcome{ font-size:42px; }
  .auth-right{ padding:32px; }
  .auth-form{ max-width:100%; }
}