/* NIFA Portal Auth (Login/Register/Reset) — premium UI */

body.portal-auth-page{
  background:
    radial-gradient(900px 420px at 12% 10%, rgba(var(--nifa-primary-rgb), .14), rgba(255,255,255,0)),
    repeating-linear-gradient(135deg, rgba(15, 23, 42, .03) 0 1px, transparent 1px 14px),
    #f6f9fc;
}

#auth{
  min-height: 100vh;
}

/* Left panel */
#auth-left{
  background: #ffffff;
  border-radius: 18px;
  box-shadow: 0 18px 40px rgba(15, 23, 42, .08);
  margin: 2rem auto;
  padding: 2.25rem 2rem;
}

@media (max-width: 991.98px){
  #auth-left{
    margin: 1rem auto;
    border-radius: 16px;
    padding: 2rem 1.5rem;
  }
}

/* Center-only layout */
body.portal-auth-page.auth-center-only .auth-right-col,
body.portal-auth-page.auth-center-only #auth-right{
  display: none !important;
}
body.portal-auth-page.auth-center-only .auth-left-col{
  flex: 0 0 100%;
  max-width: 100%;
}
body.portal-auth-page.auth-center-only #auth-left{
  max-width: 480px;
}

/* Compact tweaks */
body.portal-auth-page.auth-center-only #auth-left{
  padding: 1.85rem 1.6rem;
}
body.portal-auth-page.auth-center-only #auth-left h3{
  font-size: 1.35rem;
}
body.portal-auth-page.auth-center-only #auth-left .form-control{
  padding: .6rem .8rem;
  font-size: .92rem;
}
body.portal-auth-page.auth-center-only #auth-left .btn{
  padding: .6rem .9rem;
  font-size: .95rem;
}
body.portal-auth-page.auth-center-only #auth-left .small,
body.portal-auth-page.auth-center-only #auth-left .text-gray-600{
  font-size: .85rem;
}

/* Center vertically + horizontally (desktop & mobile) */
body.portal-auth-page.auth-center-only #auth{
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2.5rem 1rem;
}
body.portal-auth-page.auth-center-only #auth .row.h-100{
  min-height: auto;
  width: 100%;
  margin: 0;
  justify-content: center;
}
body.portal-auth-page.auth-center-only #auth .row.h-100 > [class*="col-"]{
  padding-left: 0;
  padding-right: 0;
}
@media (max-width: 991.98px){
  body.portal-auth-page.auth-center-only #auth{
    padding: 2rem 1rem;
  }
}

/* PWA-like mobile auth */
@media (max-width: 767.98px){
  body.portal-auth-page.auth-center-only{
    background: #f7f9fc;
  }
  body.portal-auth-page.auth-center-only #auth{
    align-items: stretch;
    padding: 0;
  }
  body.portal-auth-page.auth-center-only #auth-left{
    margin: 0;
    max-width: 100%;
    min-height: 100vh;
    border-radius: 0;
    box-shadow: none;
    background: #ffffff;
    padding-top: calc(2rem + env(safe-area-inset-top));
    padding-bottom: calc(2rem + env(safe-area-inset-bottom));
  }
  body.portal-auth-page.auth-center-only #auth-left .btn.btn-primary{
    width: 100%;
    padding: .75rem 1rem;
    font-size: 1rem;
  }
  body.portal-auth-page.auth-center-only #auth-left .form-control{
    padding: .75rem .9rem;
    font-size: .95rem;
  }
}

#auth-left .auth-logo img{
  max-height: 44px;
  width: auto;
}
body.portal-auth-page #auth-left .auth-logo{
  margin-bottom: .35rem;
}
.portal-brand-name{
  font-family: "Segoe UI", "Trebuchet MS", "Arial Rounded MT Bold", "Helvetica Rounded", sans-serif;
  font-weight: 800;
  letter-spacing: .04em;
  color: var(--nifa-primary);
  font-size: 1rem;
  text-shadow: 0 1px 0 rgba(0,0,0,.06);
  position: relative;
  display: inline-block;
  transform: skewX(-4deg);
  padding-right: .35rem;
  padding-bottom: .22em;
  --nifa-brand-underline-w: .62em;
  --nifa-brand-underline-h: .22em;
  --nifa-brand-underline-bottom: .02em;
  --nifa-brand-underline-opacity: .6;
}
@supports (-webkit-background-clip: text) or (background-clip: text){
  .portal-brand-name{
    background: linear-gradient(135deg, var(--nifa-primary) 0%, #0fa7b6 52%, #0f7f8a 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
  }
}
.portal-brand-name::after{
  content: "";
  position: absolute;
  right: 0;
  bottom: var(--nifa-brand-underline-bottom, .02em);
  width: var(--nifa-brand-underline-w, .62em);
  height: var(--nifa-brand-underline-h, .22em);
  border-radius: 999px;
  background: rgba(var(--nifa-primary-rgb), var(--nifa-brand-underline-opacity, .6));
  transform: skewX(6deg);
}

#auth-left h3{
  font-weight: 800;
  letter-spacing: -.3px;
  margin-top: .5rem;
  margin-bottom: .25rem;
}

#auth-left .text-muted,
#auth-left .text-gray-600{
  color: #6b7280 !important;
}

/* Inputs */
#auth-left .form-control{
  border-radius: 12px;
  border-color: #e5edf6;
  padding: .7rem .85rem;
  font-size: .95rem;
  background: #fbfdff;
  box-shadow: none;
}
#auth-left .form-control:focus{
  border-color: rgba(var(--nifa-primary-rgb), .55);
  box-shadow: 0 0 0 .2rem rgba(var(--nifa-primary-rgb), .18);
  background: #ffffff;
}
#auth-left .form-group.has-icon-left .form-control{
  padding-left: .85rem;
}
#auth-left .form-group.has-icon-left .form-control-icon{
  display: none !important;
}

/* Buttons */
#auth-left .btn{
  border-radius: 12px;
  font-weight: 700;
  padding: .65rem 1rem;
}
#auth-left .btn-primary{
  background: var(--nifa-primary);
  border-color: var(--nifa-primary);
  color: #fff;
  box-shadow: 0 12px 26px rgba(var(--nifa-primary-rgb), .25);
}
#auth-left .btn-primary:hover{
  background: var(--nifa-primary-hover);
  border-color: var(--nifa-primary-hover);
}
#auth-left .btn-primary:active{
  background: var(--nifa-primary-active);
  border-color: var(--nifa-primary-active);
}

#auth-left a{
  color: var(--nifa-primary);
  text-decoration: none;
}
#auth-left a:hover{
  color: var(--nifa-primary-hover);
  text-decoration: underline;
}

/* Right panel */
#auth-right{
  min-height: 100vh;
  background:
    radial-gradient(1200px 520px at 12% 10%, rgba(var(--nifa-primary-rgb), .96), rgba(var(--nifa-primary-rgb), .32)),
    radial-gradient(900px 520px at 90% 30%, rgba(255,255,255,.18), rgba(255,255,255,0)),
    linear-gradient(120deg, rgba(255,255,255,.08) 0%, rgba(255,255,255,0) 40%),
    repeating-linear-gradient(135deg, rgba(255,255,255,.08) 0 1px, transparent 1px 14px);
  position: relative;
  overflow: hidden;
}
#auth-right::before{
  content: "";
  position: absolute;
  right: -6%;
  top: 8%;
  width: 520px;
  height: 520px;
  background-image: var(--nifa-logo-url);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100%;
  opacity: .08;
  filter: drop-shadow(0 20px 40px rgba(0,0,0,.12));
  transform: rotate(-6deg);
  pointer-events: none;
}
#auth-right::after{
  content: "";
  position: absolute;
  inset: -40% -25% auto auto;
  width: 520px;
  height: 520px;
  background: rgba(255, 255, 255, .08);
  border-radius: 999px;
  transform: rotate(18deg);
  pointer-events: none;
}
.auth-right-card{
  backdrop-filter: blur(8px);
  background: rgba(255, 255, 255, .10);
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: 1.25rem;
  padding: 1.25rem 1.25rem;
  box-shadow: 0 18px 48px rgba(0,0,0,.15);
  animation: authFloat 6s ease-in-out infinite;
}
.auth-right-min{
  max-width: 420px;
  padding: 1.5rem 1.6rem;
}
.auth-right-mark{
  display: inline-flex;
  gap: .35rem;
  margin-bottom: .9rem;
}
.auth-right-dot{
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: rgba(255,255,255,.8);
  box-shadow: 0 0 0 4px rgba(255,255,255,.12);
}

@keyframes authFloat{
  0%, 100%{ transform: translateY(0); }
  50%{ transform: translateY(-6px); }
}
.auth-right-kpi{
  display: inline-flex;
  gap: .5rem;
  align-items: center;
  padding: .35rem .6rem;
  border-radius: 999px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.16);
  font-size: .875rem;
}
