:root{
  --login-bg1:#0b1220;
  --login-bg2:#121c33;
  --login-card:#ffffff;
  --login-muted:#6b7280;
  --login-shadow: 0 24px 70px rgba(0,0,0,.22);
  --login-radius: 22px;
}

body.login-body{
  min-height:100vh;
  background:
    radial-gradient(1200px 700px at 12% 10%, rgba(29,78,216,.32), transparent 60%),
    radial-gradient(1200px 700px at 92% 90%, rgba(34,197,94,.20), transparent 55%),
    linear-gradient(135deg, var(--login-bg1), var(--login-bg2));
  color:#0f172a;
}

.login-main{
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:22px;
}

.login-container{
  width:100%;
  max-width: 1120px;
}

.login-shell{
  width:100%;
  display:grid;
  grid-template-columns: 1.1fr 1fr;
  border-radius: var(--login-radius);
  overflow:hidden;
  box-shadow: var(--login-shadow);
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.12);
  backdrop-filter: blur(10px);
}

/* Panel de marca */
.login-brand{
  color:#fff;
  padding: 42px;
  background:
    radial-gradient(900px 600px at 30% 20%, rgba(29,78,216,.38), transparent 60%),
    radial-gradient(900px 600px at 85% 75%, rgba(34,197,94,.24), transparent 55%),
    linear-gradient(145deg, rgba(255,255,255,.10), rgba(255,255,255,.04));
}

.login-brand__inner{
  height:100%;
  display:flex;
  flex-direction:column;
  gap: 22px;
}

.brand-head{
  display:flex;
  gap:14px;
  align-items:center;
}

.brand-mark{
  width: 54px;
  height: 54px;
  display:grid;
  place-items:center;
  border-radius: 16px;
  background: rgba(255,255,255,.14);
  border: 1px solid rgba(255,255,255,.18);
  font-size: 26px;
}

.brand-name{
  font-weight: 800;
  font-size: 28px;
  letter-spacing: .2px;
  line-height: 1.1;
}

.brand-tagline{
  opacity: .86;
}

.brand-cards{
  display:grid;
  gap:14px;
}

.brand-card{
  display:grid;
  grid-template-columns: 42px 1fr;
  gap: 12px;
  padding: 14px;
  border-radius: 18px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
}

.brand-card__icon{
  width: 42px;
  height: 42px;
  display:grid;
  place-items:center;
  border-radius: 14px;
  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.14);
  font-size: 18px;
}

.brand-card__title{
  font-weight: 800;
  margin-bottom: 2px;
}

.brand-card__desc{
  opacity:.86;
  font-size: 14px;
  line-height: 1.35;
}

.brand-foot{
  margin-top:auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  flex-wrap:wrap;
}

.brand-pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 10px 12px;
  border-radius: 999px;
  background: rgba(0,0,0,.22);
  border: 1px solid rgba(255,255,255,.12);
}

.brand-copy{
  opacity:.75;
  font-size: 13px;
}

/* Panel formulario */
.login-form{
  padding: 34px;
  display:flex;
  align-items:center;
  justify-content:center;
  background: rgba(255,255,255,.06);
}

.login-card{
  width: min(430px, 100%);
  background: rgba(255,255,255,.95);
  border-radius: 22px;
  padding: 26px;
  box-shadow: 0 14px 48px rgba(0,0,0,.18);
  border: 1px solid rgba(0,0,0,.06);
}

.mini-mark{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius: 14px;
  background: rgba(29,78,216,.10);
  border: 1px solid rgba(29,78,216,.18);
  color:#1d4ed8;
  font-size: 20px;
}

.mini-name{ font-weight: 900; line-height:1.1; }
.mini-sub{ font-size: 13px; color: var(--login-muted); }

.login-title{
  font-size: 26px;
  font-weight: 900;
  margin: 0 0 6px 0;
}

.login-subtitle{
  color: var(--login-muted);
  margin-bottom: 18px;
}

.login-input{
  position: relative;
}

.login-input > i{
  position:absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: #64748b;
  font-size: 18px;
  pointer-events:none;
}

.login-input .form-control{
  padding-left: 44px;
  padding-right: 48px;
  border-radius: 16px;
}

.btn-eye{
  position:absolute;
  right: 8px;
  top: 50%;
  transform: translateY(-50%);
  border:0;
  background: transparent;
  width: 40px;
  height: 40px;
  border-radius: 12px;
  color: #64748b;
}

.btn-eye:hover{ background: rgba(0,0,0,.06); }

.btn-login{
  border-radius: 16px;
  padding: 12px 14px;
  border: none;
  background: linear-gradient(135deg, #1d4ed8, #0ea5e9);
}

.login-meta{
  display:grid;
  gap: 10px;
  font-size: 14px;
}

.meta-row{
  display:flex;
  align-items:flex-start;
  gap: 8px;
  color: #334155;
}

.meta-row i{ color: #64748b; margin-top: 2px; }

/* Responsive */
@media (max-width: 991.98px){
  .login-shell{ grid-template-columns: 1fr; }
  .login-form{ padding: 22px; }
  .login-card{ padding: 22px; }
}
