body:has(.login-workspace) { min-height: 100vh; background: radial-gradient(ellipse at 12% 8%, #eeeaff 0, transparent 35%), radial-gradient(ellipse at 88% 92%, #e6f8f5 0, transparent 32%), #f7f8fc; }
body:has(.login-workspace) .shell { display: grid; width: min(100%, 1120px); min-height: 100vh; grid-template-rows: 1fr auto; padding: 24px 28px 18px; }
body:has(.login-workspace) .shell > header { display: none; }
.login-workspace { display: grid; align-content: center; justify-items: center; min-height: calc(100vh - 92px); gap: 19px; padding: 18px 0 8px; }
.login-card { width: min(100%, 420px); padding: 34px 38px 27px; border: 1px solid rgba(226, 225, 239, .92); border-radius: 19px; background: rgba(255, 255, 255, .94); box-shadow: 0 18px 55px rgba(44, 39, 88, .09); }
.login-brand { display: inline-flex; align-items: center; gap: 10px; color: #28243f; text-decoration: none; }
.login-brand img { width: 38px; height: 38px; object-fit: contain; }
.login-brand > span { display: grid; gap: 3px; }
.login-brand strong { font-size: 15px; line-height: 1; letter-spacing: -.02em; }
.login-brand small { color: #9692aa; font-size: 8px; font-weight: 700; letter-spacing: .11em; }
.login-intro { margin: 28px 0 21px; }
.login-eyebrow { color: #6f60df; font-size: 11px; font-weight: 700; }
.login-intro h1 { margin: 7px 0 6px; color: #29263d; font-size: 25px; letter-spacing: -.035em; }
.login-intro p { margin: 0; color: #85849a; font-size: 12px; }
.login-form { display: grid; gap: 15px; }
.login-form label { display: grid; gap: 6px; color: #55536a; font-size: 11px; font-weight: 650; }
.login-form input { width: 100%; min-height: 42px; padding: 0 12px; border: 1px solid #e0e0eb; border-radius: 8px; outline: none; background: #fff; color: #29263d; font: inherit; font-size: 12px; transition: border-color .15s, box-shadow .15s; }
.login-form input:focus { border-color: #8578eb; box-shadow: 0 0 0 3px rgba(111, 96, 223, .12); }
.login-form input::placeholder { color: #b0afbd; }
.login-submit { display: flex; min-height: 42px; align-items: center; justify-content: space-between; margin-top: 3px; padding: 0 14px; border: 0; border-radius: 8px; background: linear-gradient(100deg, #6d5ce8, #8373ee); color: #fff; cursor: pointer; font: inherit; font-size: 12px; font-weight: 700; box-shadow: 0 5px 12px rgba(103, 85, 245, .16); }
.login-submit:hover { background: #5e4ed1; }
.login-submit span { font-size: 16px; }
.login-error { margin: 0 0 14px; padding: 9px 11px; border: 1px solid #f1dada; border-radius: 8px; background: #fff7f6; color: #a23e42; font-size: 11px; }
.login-security-note { display: flex; justify-content: center; gap: 6px; margin: 21px 0 0; color: #9795a7; font-size: 10px; }
.login-security-note span { color: #6e9c82; }
.login-footer { color: #aaa8b7; font-size: 10px; }
.login-footer span { padding: 0 4px; }
@media (max-width: 560px) {
  body:has(.login-workspace) .shell { padding: 14px; }
  .login-workspace { min-height: calc(100vh - 52px); }
  .login-card { padding: 27px 23px 23px; border-radius: 15px; }
  .login-intro { margin-top: 23px; }
}
