.login-main{
  min-height:calc(100vh - 140px);
  display:flex; align-items:center; justify-content:center;
  position:relative; overflow:hidden; padding:40px 20px;
}
.login-blobs{ position:absolute; inset:0; z-index:0; }
.login-blobs .blob{ position:absolute; border-radius:50%; filter:blur(60px); opacity:.5; animation:floatSlow 11s ease-in-out infinite; }
.login-blobs .blob-1{ width:300px; height:300px; background:var(--blue-light); top:-60px; inset-inline-start:-80px; }
.login-blobs .blob-2{ width:220px; height:220px; background:var(--blue-tint); bottom:-60px; inset-inline-end:-40px; animation-delay:1.5s; }

.login-card{
  position:relative; z-index:1;
  background:var(--surface); border:1px solid var(--border); border-radius:var(--radius-lg);
  box-shadow:var(--shadow-lg); padding:40px 36px; width:380px; max-width:100%;
  text-align:center;
}
.login-mark{
  width:52px; height:52px; margin:0 auto 18px; border-radius:14px;
  background:linear-gradient(135deg, var(--blue) 0%, var(--blue-dark) 100%);
  color:#fff; font-weight:800; font-size:22px;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 8px 20px rgba(46,151,212,0.35);
}
.login-card h1{ font-size:22px; margin-bottom:8px; }
.login-sub{ font-size:13.5px; color:var(--ink-soft); margin-bottom:26px; line-height:1.6; }

.g-login-btn{ display:flex; justify-content:center; margin-bottom:18px; min-height:44px; }
.login-error{
  background:var(--rust-tint); color:var(--rust); font-size:12.5px; font-weight:600;
  border-radius:var(--radius-sm); padding:10px 12px; margin-bottom:14px;
}
.login-terms{ font-size:11.5px; color:var(--ink-faint); line-height:1.6; margin-bottom:16px; }
.login-back{ font-size:12.5px; color:var(--blue-dark); font-weight:600; }
.login-back:hover{ text-decoration:underline; }
