:root{
  --auth-bg0:#0b1220;
  --auth-bg1:#0f2233;
  --auth-ink:rgba(255,255,255,.92);
  --auth-paper:rgba(8,12,20,.72);
  --auth-paper-strong:rgba(8,12,20,.78);
  --auth-line:rgba(255,255,255,.14);
  --auth-muted:rgba(255,255,255,.72);
  --auth-accent:#0ea5a5;
  --auth-accent2:#f59e0b;
  --auth-shadow:0 22px 60px rgba(0,0,0,.22);
  --auth-shadow2:0 10px 30px rgba(0,0,0,.18);
}

/* Premium auth shell */
.auth-premium-shell{
  min-height:100vh;
  background:
    radial-gradient(1200px 700px at 12% 15%, rgba(14,165,165,.35), transparent 55%),
    radial-gradient(1000px 600px at 82% 22%, rgba(245,158,11,.28), transparent 55%),
    radial-gradient(900px 700px at 65% 92%, rgba(99,102,241,.18), transparent 55%),
    linear-gradient(135deg, var(--auth-bg0), var(--auth-bg1));
  position:relative;
  overflow:hidden;
}

.auth-premium-shell .section-authentication-cover{
  min-height:100vh;
}

/* The theme sets these to solid backgrounds; override so our shell shows */
.auth-premium-shell .auth-cover-left,
.auth-premium-shell .auth-cover-right{
  background: transparent !important;
  min-height: 100vh;
}

.auth-premium-shell .auth-cover-right{
  padding: clamp(10px, 1.8vw, 22px);
}

/* tighten the overall grid so it feels intentional */
.auth-premium-shell .row.g-0{
  min-height: 100vh;
}

.auth-premium-shell::before{
  content:"";
  position:absolute;
  inset:-2px;
  background:
    radial-gradient(circle at 20% 30%, rgba(255,255,255,.10), transparent 42%),
    radial-gradient(circle at 80% 20%, rgba(255,255,255,.08), transparent 40%),
    radial-gradient(circle at 55% 85%, rgba(255,255,255,.06), transparent 40%),
    repeating-linear-gradient(0deg, rgba(255,255,255,.018), rgba(255,255,255,.018) 1px, transparent 1px, transparent 6px);
  opacity:.55;
  pointer-events:none;
}

.auth-premium-shell::after{
  content:"";
  position:absolute;
  inset:-50%;
  background:
    radial-gradient(circle at 30% 40%, rgba(14,165,165,.22), transparent 40%),
    radial-gradient(circle at 75% 30%, rgba(245,158,11,.18), transparent 42%);
  filter:blur(30px);
  transform:translate3d(0,0,0);
  animation:authGlow 18s ease-in-out infinite;
  pointer-events:none;
  opacity:.65;
}

@keyframes authGlow{
  0%{ transform:translate3d(-2%, -2%, 0) scale(1); }
  50%{ transform:translate3d(2%, 1%, 0) scale(1.02); }
  100%{ transform:translate3d(-2%, -2%, 0) scale(1); }
}

@media (prefers-reduced-motion: reduce){
  .auth-premium-shell::after{ animation:none; }
}

/* Left hero */
.auth-hero{
  padding:clamp(28px, 4vw, 48px);
  color:rgba(255,255,255,.92);
}
.auth-hero .auth-hero-badge{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  padding:.5rem .75rem;
  border-radius:999px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.18);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  font-weight:600;
  letter-spacing:.2px;
}
.auth-hero h1{
  margin-top:1rem;
  font-family:"Fraunces", ui-serif, Georgia, serif;
  font-size:clamp(28px, 3.2vw, 44px);
  line-height:1.05;
  letter-spacing:-.4px;
}
.auth-hero p{
  margin-top:.75rem;
  max-width:48ch;
  color:rgba(255,255,255,.78);
  font-family:"Plus Jakarta Sans", "Roboto", system-ui, -apple-system, "Segoe UI", sans-serif;
}
.auth-hero .auth-hero-list{
  margin-top:1.25rem;
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
}
.auth-hero .auth-hero-pill{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  padding:.55rem .75rem;
  border-radius:14px;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.14);
  color:rgba(255,255,255,.86);
  font-weight:600;
  font-size:.9rem;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.auth-hero img{
  filter: drop-shadow(0 22px 45px rgba(0,0,0,.25));
  transform:translateZ(0);
}

/* Right card */
.auth-card{
  border-radius:24px !important;
  border:1px solid transparent !important;
  background:
    linear-gradient(var(--auth-paper), var(--auth-paper-strong)) padding-box,
    linear-gradient(135deg, rgba(14,165,165,.55), rgba(245,158,11,.40), rgba(99,102,241,.38)) border-box;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
  box-shadow: var(--auth-shadow);
  overflow:hidden;
}
.auth-card::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    radial-gradient(280px 180px at 12% 8%, rgba(14,165,165,.18), transparent 60%),
    radial-gradient(260px 180px at 92% 18%, rgba(245,158,11,.14), transparent 62%),
    radial-gradient(260px 200px at 72% 96%, rgba(99,102,241,.10), transparent 60%);
  pointer-events:none;
}
.auth-card > .card-body{
  position:relative;
}
.auth-card .auth-brand{
  display:flex;
  align-items:center;
  justify-content:center;
  margin-bottom:1rem;
}
.auth-card .auth-title{
  font-family:"Plus Jakarta Sans", "Roboto", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-weight:800;
  letter-spacing:-.35px;
  color:var(--auth-ink);
}
.auth-card .auth-subtitle{
  color:var(--auth-muted);
}
.auth-card .form-control{
  border-radius:14px;
  border:1px solid rgba(255,255,255,.16);
  box-shadow:none;
  padding:.75rem .9rem;
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.92);
}
.auth-card .form-control::placeholder{
  color: rgba(255,255,255,.58);
}
.auth-card label{
  font-family:"Plus Jakarta Sans", "Roboto", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-weight:700;
  color:rgba(255,255,255,.86);
}
.auth-card .form-control:focus{
  border-color:rgba(14,165,165,.70);
  box-shadow:0 0 0 .25rem rgba(14,165,165,.16);
}
.auth-card .input-group-text{
  border-radius:14px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.06);
  color: rgba(255,255,255,.78);
}
.auth-card .btn.primary,
.auth-card .btn.btn-primary{
  border-radius:14px;
  box-shadow: var(--auth-shadow2);
}
.auth-card .btn.btn-primary{
  background: linear-gradient(135deg, rgba(14,165,165,1), rgba(2,132,199,1));
  border:0;
}
.auth-card .btn.btn-primary:hover{
  filter: brightness(1.03);
}
.auth-card .btn.btn-light{
  border-radius:14px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.16);
  color: rgba(255,255,255,.88);
}
.auth-card .auth-divider{
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(255,255,255,.18), transparent);
  margin:1rem 0;
}

/* Links inside the card */
.auth-card a{
  color: rgba(173, 244, 244, .95);
  text-decoration: none;
}
.auth-card a:hover{
  text-decoration: underline;
}

/* Demo table on login: soften it */
.auth-card table.table{
  color: rgba(255,255,255,.86);
  border-color: rgba(255,255,255,.14);
}
.auth-card .table-bordered>:not(caption)>*{
  border-color: rgba(255,255,255,.14);
}
.auth-card .table thead tr{
  background: rgba(255,255,255,.10) !important;
}

/* Small entrance motion */
.auth-appear{
  animation:authAppear .55s cubic-bezier(.2,.9,.2,1) both;
}
@keyframes authAppear{
  from{ opacity:0; transform:translate3d(0, 10px, 0); }
  to{ opacity:1; transform:translate3d(0, 0, 0); }
}
@media (prefers-reduced-motion: reduce){
  .auth-appear{ animation:none; }
}
