/* NexGen Login Reference Implementation rc269 */
.ps-auth-scene{
  background:
    radial-gradient(circle at 8% 18%,rgba(132,107,238,.28),transparent 31%),
    radial-gradient(circle at 93% 15%,rgba(41,208,211,.25),transparent 29%),
    linear-gradient(135deg,#eef3fb,#f7f9fd 52%,#eef4fb)!important;
  padding:18px!important;
}
.ps-auth-scene .ps-auth-mesh,
.ps-auth-scene .ps-auth-grid,
.ps-auth-scene .ps-auth-orb{display:none!important}

.ps-auth-shell{
  width:min(1450px,calc(100vw - 36px))!important;
  min-height:calc(100vh - 36px)!important;
  display:grid!important;
  grid-template-columns:minmax(0,1.05fr) minmax(520px,.72fr)!important;
  border:1px solid rgba(255,255,255,.68)!important;
  border-radius:30px!important;
  overflow:hidden!important;
  background:#fff!important;
  box-shadow:0 30px 80px rgba(22,38,66,.18)!important;
}

/* LEFT VISUAL */
.nxloginVisual{
  position:relative!important;
  min-height:760px!important;
  padding:0!important;
  overflow:hidden!important;
  background:#07152b!important;
}
.nxloginVisualImage{
  position:absolute!important;
  inset:0!important;
  z-index:0!important;
}
.nxloginVisualImage img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:62% center!important;
  display:block!important;
  filter:saturate(1.03) contrast(1.02)!important;
}
.nxloginVisualShade{
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  background:
    linear-gradient(90deg,rgba(5,18,38,.97) 0%,rgba(5,18,38,.88) 30%,rgba(5,18,38,.54) 58%,rgba(5,18,38,.18) 78%,rgba(5,18,38,.08) 100%),
    linear-gradient(180deg,rgba(7,20,40,.08),rgba(7,20,40,.72))!important;
}
.nxloginVisualInner{
  position:relative!important;
  z-index:2!important;
  min-height:760px!important;
  height:100%!important;
  display:flex!important;
  flex-direction:column!important;
  padding:38px 46px 34px!important;
  color:#fff!important;
}
.nxloginBrand{
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  color:#fff!important;
  text-decoration:none!important;
  max-width:440px!important;
}
.nxloginLogo{
  display:grid!important;
  place-items:center!important;
  width:58px!important;
  height:58px!important;
  flex:0 0 auto!important;
  border:2px solid rgba(255,255,255,.84)!important;
  border-radius:15px!important;
  background:rgba(4,16,33,.52)!important;
  backdrop-filter:blur(8px)!important;
}
.nxloginLogo img{
  width:42px!important;
  height:42px!important;
  object-fit:contain!important;
}
.nxloginBrand strong{
  display:block!important;
  font-size:17px!important;
  line-height:1.2!important;
  font-weight:900!important;
}
.nxloginBrand small{
  display:block!important;
  margin-top:3px!important;
  color:#a9bdd8!important;
  font-size:10px!important;
  line-height:1.3!important;
  font-weight:800!important;
  letter-spacing:.10em!important;
}
.nxloginStory{
  width:min(610px,74%)!important;
  margin:auto 0!important;
  padding:34px 0 24px!important;
}
.nxloginKicker{
  display:inline-flex!important;
  margin-bottom:14px!important;
  padding:8px 13px!important;
  border:1px solid rgba(89,143,255,.38)!important;
  border-radius:999px!important;
  background:linear-gradient(135deg,rgba(89,67,224,.28),rgba(24,124,209,.26))!important;
  color:#e8efff!important;
  font-size:11px!important;
  font-weight:900!important;
  letter-spacing:.11em!important;
}
.nxloginStory h1{
  margin:0 0 14px!important;
  color:#fff!important;
  font-size:clamp(44px,5vw,68px)!important;
  line-height:.98!important;
  letter-spacing:-.055em!important;
  font-weight:900!important;
  text-wrap:balance!important;
  text-shadow:0 2px 14px rgba(0,0,0,.24)!important;
}
.nxloginStory h1 span{
  display:block!important;
  background:linear-gradient(90deg,#1fb6ff,#6878ff 56%,#9a56ff)!important;
  -webkit-background-clip:text!important;
  background-clip:text!important;
  color:transparent!important;
}
.nxloginStory>p{
  max-width:540px!important;
  margin:0 0 26px!important;
  color:#dbe7f7!important;
  font-size:17px!important;
  line-height:1.55!important;
}
.nxloginBenefits{
  display:grid!important;
  gap:13px!important;
}
.nxloginBenefits article{
  display:grid!important;
  grid-template-columns:48px 1fr!important;
  gap:13px!important;
  align-items:center!important;
}
.nxloginBenefits i{
  display:grid!important;
  place-items:center!important;
  width:48px!important;
  height:48px!important;
  border-radius:13px!important;
  background:linear-gradient(145deg,rgba(32,93,164,.55),rgba(77,57,182,.55))!important;
  border:1px solid rgba(255,255,255,.08)!important;
  font-style:normal!important;
  font-size:20px!important;
}
.nxloginBenefits b{
  display:block!important;
  color:#fff!important;
  font-size:15px!important;
  line-height:1.25!important;
}
.nxloginBenefits small{
  display:block!important;
  margin-top:2px!important;
  color:#b9c9dc!important;
  font-size:12px!important;
  line-height:1.4!important;
}
.nxloginVisualFoot{
  display:flex!important;
  justify-content:space-between!important;
  align-items:flex-end!important;
  gap:18px!important;
}
.nxloginVisualFoot blockquote{
  max-width:350px!important;
  margin:0!important;
  padding-left:16px!important;
  border-left:4px solid #7a55ff!important;
  color:#cbd9ec!important;
  font-size:16px!important;
  line-height:1.45!important;
  font-style:italic!important;
}
.nxloginMiniStats{
  display:grid!important;
  grid-template-columns:repeat(3,1fr)!important;
  min-width:320px!important;
  border:1px solid rgba(255,255,255,.10)!important;
  border-radius:16px!important;
  overflow:hidden!important;
  background:rgba(11,31,58,.56)!important;
  backdrop-filter:blur(8px)!important;
}
.nxloginMiniStats>div{
  padding:12px!important;
  text-align:center!important;
  border-right:1px solid rgba(255,255,255,.08)!important;
}
.nxloginMiniStats>div:last-child{border-right:0!important}
.nxloginMiniStats strong{
  display:block!important;
  color:#fff!important;
  font-size:13px!important;
  line-height:1.2!important;
}
.nxloginMiniStats small{
  display:block!important;
  margin-top:2px!important;
  color:#91a5c2!important;
  font-size:10px!important;
  text-transform:uppercase!important;
  letter-spacing:.08em!important;
}

/* RIGHT LOGIN PANEL */
.ps-auth-formside{
  min-height:760px!important;
  display:grid!important;
  place-items:center!important;
  padding:38px 42px!important;
  background:
    radial-gradient(circle at 88% 10%,rgba(114,88,237,.10),transparent 22%),
    linear-gradient(180deg,#f8fbff,#f2f6fc)!important;
}
.ps-auth-card{
  width:min(100%,620px)!important;
  margin:0!important;
  padding:28px!important;
  border:1px solid #e3e9f2!important;
  border-radius:24px!important;
  background:rgba(255,255,255,.96)!important;
  box-shadow:0 18px 48px rgba(34,49,77,.10)!important;
}
.ps-auth-head{
  display:flex!important;
  justify-content:space-between!important;
  align-items:center!important;
  margin-bottom:20px!important;
}
.ps-auth-secure{
  display:inline-flex!important;
  align-items:center!important;
  gap:7px!important;
  min-height:32px!important;
  padding:7px 10px!important;
  border-radius:999px!important;
  background:#eaf9f1!important;
  color:#087451!important;
  font-size:11px!important;
  font-weight:900!important;
}
.ps-auth-provider{
  color:#5e5ad2!important;
  font-size:12px!important;
  font-weight:900!important;
}
.ps-auth-welcome{
  display:flex!important;
  align-items:flex-start!important;
  gap:12px!important;
  margin-bottom:18px!important;
}
.ps-auth-current-icon{
  display:grid!important;
  place-items:center!important;
  width:42px!important;
  height:42px!important;
  border-radius:12px!important;
  background:#eef0ff!important;
  color:#5c48d5!important;
  font-size:18px!important;
}
.ps-auth-welcome h2{
  margin:0 0 4px!important;
  color:#17243a!important;
  font-size:34px!important;
  line-height:1.1!important;
  letter-spacing:-.04em!important;
  font-weight:900!important;
}
.ps-auth-welcome p{
  margin:0!important;
  color:#637188!important;
  font-size:14px!important;
  line-height:1.5!important;
}
.ps-auth-portals{
  display:grid!important;
  grid-template-columns:repeat(3,1fr)!important;
  gap:6px!important;
  padding:5px!important;
  margin-bottom:14px!important;
  border:1px solid #e0e6f0!important;
  border-radius:14px!important;
  background:#f8fafc!important;
}
.ps-auth-portals a{
  min-height:46px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  border-radius:10px!important;
  color:#4d5b73!important;
  font-size:13px!important;
  font-weight:850!important;
  text-decoration:none!important;
}
.ps-auth-portals a.active{
  color:#fff!important;
  background:linear-gradient(135deg,#7032f4,#315ee9)!important;
  box-shadow:0 8px 20px rgba(78,62,210,.22)!important;
}
.ps-auth-context{
  margin-bottom:16px!important;
  padding:12px 13px!important;
  border:1px solid #e5eaf2!important;
  border-radius:12px!important;
  background:#fbfcfe!important;
}
.ps-auth-context span{
  display:block!important;
  color:#26354d!important;
  font-size:12px!important;
  font-weight:850!important;
}
.ps-auth-context small{
  display:block!important;
  margin-top:3px!important;
  color:#69778b!important;
  font-size:12px!important;
  line-height:1.45!important;
}
.ps-auth-form{
  display:grid!important;
  gap:14px!important;
}
.ps-auth-form label{
  display:grid!important;
  gap:7px!important;
}
.ps-auth-form label>span:first-child{
  color:#2d3b51!important;
  font-size:12px!important;
  font-weight:850!important;
}
.ps-auth-control{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
}
.ps-auth-control>i{
  position:absolute!important;
  left:13px!important;
  z-index:2!important;
  color:#75849a!important;
  font-style:normal!important;
}
.ps-auth-control input{
  width:100%!important;
  min-height:50px!important;
  padding:11px 44px!important;
  border:1px solid #d7e0eb!important;
  border-radius:12px!important;
  background:#fff!important;
  color:#17243a!important;
  font-size:15px!important;
}
.ps-auth-control input:focus{
  outline:0!important;
  border-color:#6f7fe4!important;
  box-shadow:0 0 0 4px rgba(89,92,211,.11)!important;
}
.ps-auth-form button[type="submit"]{
  min-height:50px!important;
  margin-top:2px!important;
  border:0!important;
  border-radius:12px!important;
  background:linear-gradient(135deg,#6f2ff4,#0b6cf3)!important;
  color:#fff!important;
  font-size:15px!important;
  font-weight:900!important;
  box-shadow:0 12px 28px rgba(75,70,214,.22)!important;
}
.ps-auth-form button[type="submit"]:hover{transform:translateY(-1px)!important}

/* Checkbox/help row */
.ps-auth-form .ps-auth-row,
.ps-auth-form [class*="remember"],
.ps-auth-form [class*="assist"]{
  font-size:12px!important;
}
.ps-auth-form a{color:#5439d4!important;font-weight:850!important}

/* Bottom trust and website return */
.ps-auth-card::after{
  content:"Your account. Your learning. Your authenticated role opens the correct Student, Lecturer or Administration workspace automatically.";
  display:block!important;
  margin-top:18px!important;
  padding:14px 15px!important;
  border-radius:13px!important;
  background:linear-gradient(135deg,#f1f5ff,#f7f9fd)!important;
  color:#64728a!important;
  font-size:12px!important;
  line-height:1.5!important;
  border:1px solid #e7ebf2!important;
}
.ps-auth-card + *{margin-top:0!important}

/* Mobile / tablet */
@media(max-width:1100px){
  .ps-auth-shell{grid-template-columns:1fr!important}
  .nxloginVisual{min-height:520px!important}
  .nxloginVisualInner{min-height:520px!important}
  .nxloginStory{width:min(620px,90%)!important}
  .ps-auth-formside{min-height:auto!important;padding:28px!important}
}
@media(max-width:700px){
  .ps-auth-scene{padding:8px!important}
  .ps-auth-shell{width:100%!important;min-height:calc(100vh - 16px)!important;border-radius:20px!important}
  .nxloginVisual{min-height:420px!important}
  .nxloginVisualInner{min-height:420px!important;padding:24px!important}
  .nxloginStory{width:100%!important;padding:26px 0 18px!important}
  .nxloginStory h1{font-size:40px!important}
  .nxloginStory>p{font-size:15px!important}
  .nxloginBenefits{grid-template-columns:1fr 1fr!important}
  .nxloginBenefits article{grid-template-columns:38px 1fr!important}
  .nxloginBenefits i{width:38px!important;height:38px!important;font-size:16px!important}
  .nxloginVisualFoot{display:none!important}
  .ps-auth-formside{padding:14px!important}
  .ps-auth-card{padding:20px!important;border-radius:18px!important}
  .ps-auth-portals{grid-template-columns:1fr!important}
  .ps-auth-control input{font-size:16px!important}
}
@media(prefers-reduced-motion:reduce){
  .ps-auth-form button[type="submit"]{transition:none!important;transform:none!important}
}
