.pt-login-page{ background: var(--bg) !important; overflow-x: hidden; }

@keyframes rise-in{
  from{ opacity: 0; transform: translateY(8px); }
  to{ opacity: 1; transform: translateY(0); }
}

.pt-login-shell{
  min-height: 100vh;
  display: flex;
  align-items: stretch;
}

/* ---------- brand / hero panel ---------- */
.pt-login-brand{
  flex: 1 1 55%;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: radial-gradient(circle at 20% 20%, var(--teal) 0%, var(--teal-dark) 65%);
  padding: 60px;
}
.pt-aurora{
  position: absolute; inset: -20%;
  background:
    radial-gradient(38% 32% at 22% 28%, rgba(229,193,133,0.28), transparent 70%),
    radial-gradient(42% 36% at 78% 66%, rgba(199,82,42,0.22), transparent 70%),
    radial-gradient(30% 28% at 60% 15%, rgba(116,168,146,0.20), transparent 70%);
  filter: blur(30px);
  animation: aurora-drift 18s ease-in-out infinite alternate;
}
@keyframes aurora-drift{
  0%{ transform: translate3d(-3%, -2%, 0) scale(1); }
  50%{ transform: translate3d(3%, 2%, 0) scale(1.08); }
  100%{ transform: translate3d(-2%, 3%, 0) scale(1.02); }
}
.pt-brand-inner{ position: relative; z-index: 1; max-width: 460px; text-align: left; animation: rise-in .6s ease both; }
.pt-brand-logo{ width: 84px; height: 84px; border-radius: 22px; box-shadow: var(--shadow-lift); margin-bottom: 28px; }
.pt-brand-title{
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  font-weight: 800;
  font-size: 34px;
  color: #ffffff;
  margin: 0 0 12px;
}
.pt-brand-tagline{ color: rgba(255,255,255,0.78); font-size: 16px; line-height: 1.6; margin-bottom: 28px; }
.pt-brand-points{ list-style: none; padding: 0; margin: 0; }
.pt-brand-points li{
  color: rgba(255,255,255,0.85);
  font-size: 14.5px;
  margin-bottom: 12px;
  display: flex; align-items: center; gap: 10px;
}
.pt-brand-points i{ color: var(--gold); }

/* ---------- form panel ---------- */
.pt-login-form-panel{
  flex: 1 1 45%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg);
  padding: 40px;
}
.pt-login-box{ width: 100%; max-width: 380px; margin: 0; animation: rise-in .6s .1s ease both; }
.pt-login-box-body{
  background: var(--surface) !important;
  border: 1px solid var(--border-soft);
  border-radius: var(--radius) !important;
  box-shadow: var(--shadow-soft);
  padding: 34px 30px !important;
}
.pt-login-box-body .login-box-msg{ color: var(--ink); font-weight: 700; font-size: 18px; margin-bottom: 18px; }
.pt-login-box-body a{ color: var(--teal); }
.pt-login-box-body a:hover{ color: var(--terracotta); }
.pt-version{ color: var(--text-faint); font-style: italic; font-size: 12px; }

@media (max-width: 900px){
  .pt-login-shell{ flex-direction: column; }
  .pt-login-brand{ flex: 0 0 auto; padding: 40px 24px; min-height: 260px; }
  .pt-brand-tagline, .pt-brand-points{ display: none; }
  .pt-login-form-panel{ flex: 1 1 auto; padding: 30px 20px; }
}
