body{background:var(--ink)}
.login{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
.intro{position:relative;overflow:hidden;color:#fff;padding:44px 56px;display:flex;flex-direction:column;justify-content:space-between;gap:40px;
  background:linear-gradient(160deg,var(--ink) 0%,var(--navy) 55%,#063a5a 100%)}
.intro::after{content:"";position:absolute;left:-40px;bottom:-30px;width:520px;height:420px;background:url(brand/line.svg) no-repeat left bottom/contain;opacity:.55;pointer-events:none}
.intro>*{position:relative;z-index:1}
.logo{height:40px;width:auto;align-self:flex-start}
.kicker{margin:0 0 14px;color:var(--blue-xl);font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.intro h1{font-size:clamp(32px,4vw,52px);line-height:1.04;font-weight:500;text-transform:uppercase;letter-spacing:-.01em}
.intro h1 span{color:var(--blue-l)}
.lead{max-width:440px;margin:18px 0 0;color:#b9cfdd;font-size:15.5px;line-height:1.55}
.foot{margin:0;color:#7f9bb0;font-size:12.5px}
.panel{display:flex;align-items:center;justify-content:center;padding:32px 20px;background:var(--canvas)}
.card{width:100%;max-width:400px;background:#fff;border-radius:0 20px 20px 20px;padding:36px 32px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:18px}
.card h2{font-size:24px}
.card .muted{margin:-10px 0 4px}
.pw{position:relative}
.pw input{padding-right:46px}
.pw button{position:absolute;right:4px;top:4px;width:36px;height:32px;border:0;background:none;color:var(--muted);cursor:pointer;border-radius:6px}
.pw button:hover,.pw button[aria-pressed=true]{color:var(--blue)}
.pw svg{width:19px;height:19px}
.err{margin:0;padding:10px 12px;border-radius:var(--r-sm);background:var(--crit-bg);color:var(--crit-d);font-size:13px;font-weight:500}
.card .btn{height:44px;justify-content:center;font-size:14.5px}
@media (max-width:820px){
  .login{grid-template-columns:1fr}
  .intro{padding:28px 20px 34px;gap:26px}
  .intro::after{width:320px;height:260px}
  .foot{display:none}
  .panel{padding:24px 16px 40px;align-items:flex-start}
}
