/* ==========================================================
   Elite360 Login Premium FIX55
   - Solo afecta la pantalla de login.
   - No toca dashboard, fixture, público ni módulos internos.
   ========================================================== */
.login-screen{
  --elite-navy:#061a3a;
  --elite-blue:#06439d;
  --elite-blue-2:#1167d8;
  --elite-lime:#b9ed28;
  --elite-teal:#35c9c0;
  --elite-ink:#0b1730;
  --elite-muted:#6d7b92;
  background:#f5f8fd !important;
  grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr) !important;
  min-height:100vh;
  overflow:hidden;
}

.login-hero{
  isolation:isolate;
  position:relative;
  display:flex !important;
  flex-direction:column;
  justify-content:center !important;
  gap:clamp(22px,4.8vh,48px);
  padding:clamp(42px,6.6vw,92px) clamp(38px,7vw,110px) !important;
  background:
    radial-gradient(circle at 8% 48%, rgba(77,151,255,.35), transparent 20rem),
    radial-gradient(circle at 86% 54%, rgba(185,237,40,.18), transparent 22rem),
    linear-gradient(145deg,#071426 0%,#06234c 48%,#04152e 100%) !important;
  color:#fff;
  overflow:hidden;
}

.login-hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  background:
    radial-gradient(circle at 0% 55%, rgba(255,255,255,.42) 0 2px, transparent 4px),
    radial-gradient(circle at 100% 56%, rgba(255,255,255,.30) 0 2px, transparent 4px),
    linear-gradient(115deg, transparent 0 38%, rgba(255,255,255,.06) 38.15%, transparent 38.7% 100%),
    repeating-linear-gradient(118deg, rgba(81,151,255,.11) 0 1px, transparent 1px 72px),
    linear-gradient(to top, rgba(16,105,164,.28), transparent 44%);
  opacity:.95;
}

.login-hero::after{
  content:"Torneos organizados   •   Información segura   •   Estadísticas en tiempo real";
  display:inline-flex;
  align-self:flex-start;
  max-width:720px;
  padding:14px 18px;
  border:1px solid rgba(185,237,40,.32);
  border-radius:999px;
  background:rgba(7,23,48,.42);
  color:rgba(255,255,255,.88);
  font-size:.92rem;
  font-weight:750;
  letter-spacing:.01em;
  box-shadow:0 18px 46px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.10);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}

.login-hero .app-brand{
  width:min(620px,88%);
  height:clamp(132px,18vw,238px);
  flex:0 0 auto;
  padding:0 !important;
  border:0 !important;
  background:url("./elite360-logo-premium.png") left center / contain no-repeat !important;
  filter:drop-shadow(0 26px 32px rgba(0,0,0,.36));
}

.login-hero .app-brand > *{
  visibility:hidden !important;
}

.login-hero > div:not(.app-brand){
  max-width:760px;
  position:relative;
}

.login-hero > div:not(.app-brand)::before{
  content:"";
  display:block;
  width:58px;
  height:3px;
  margin:0 0 24px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--elite-lime),rgba(185,237,40,0));
}

.login-hero h1{
  color:#fff !important;
  max-width:760px !important;
  margin:0;
  font-size:clamp(2.6rem,5.2vw,5rem) !important;
  line-height:.98 !important;
  letter-spacing:-.06em !important;
  text-wrap:balance;
}

.login-hero h1 span{
  color:var(--elite-lime);
  text-shadow:0 0 24px rgba(185,237,40,.18);
}

.login-hero p{
  color:rgba(255,255,255,.78) !important;
  max-width:680px !important;
  margin-top:22px !important;
  font-size:clamp(1rem,1.35vw,1.18rem) !important;
  line-height:1.72 !important;
}

.login-hero > .badge.success{
  display:none !important;
}

.login-panel{
  position:relative;
  display:grid !important;
  place-items:center !important;
  padding:clamp(24px,5vw,62px) !important;
  background:
    radial-gradient(circle at 0% 58%, rgba(53,201,192,.20), transparent 19rem),
    radial-gradient(circle at 92% 6%, rgba(17,103,216,.13), transparent 22rem),
    linear-gradient(180deg,#fbfdff,#eef4fb) !important;
  color:var(--elite-ink) !important;
}

.login-panel::before{
  content:"";
  position:absolute;
  inset:auto -16% -20% 12%;
  height:54%;
  background:radial-gradient(ellipse at center, rgba(17,103,216,.10), transparent 66%);
  pointer-events:none;
}

.login-card{
  position:relative;
  z-index:1;
  width:min(520px,100%) !important;
  animation:eliteLoginIn .45s ease both;
}

.login-card > .glass-card,
.login-card > .card{
  border:1px solid rgba(197,210,230,.78) !important;
  border-radius:30px !important;
  background:rgba(255,255,255,.82) !important;
  padding:30px 34px !important;
  box-shadow:0 34px 82px rgba(12,33,68,.16), inset 0 1px 0 rgba(255,255,255,.82) !important;
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
}

.login-brand{
  margin-bottom:22px !important;
  text-align:center !important;
}

.login-brand .brand-mark{
  width:142px !important;
  height:52px !important;
  margin:0 auto 16px !important;
  border-radius:0 !important;
  background:url("./elite360-logo-premium.png") center / contain no-repeat !important;
  box-shadow:none !important;
  color:transparent !important;
  font-size:0 !important;
}

.login-brand h2{
  margin:0 !important;
  color:#06142b !important;
  font-size:clamp(1.55rem,2.2vw,2rem) !important;
  line-height:1.08 !important;
  letter-spacing:-.045em !important;
  font-weight:900 !important;
}

.login-brand h2::after{
  content:"";
  display:block;
  width:52px;
  height:2px;
  margin:14px auto 0;
  border-radius:999px;
  background:linear-gradient(90deg,var(--elite-blue-2),var(--elite-lime));
}

.login-brand p{
  color:#6d7b92 !important;
  margin-top:10px !important;
  font-size:.98rem !important;
  font-weight:650 !important;
}

.login-card form{
  display:grid;
  gap:15px;
}

.login-card .form-group{
  gap:8px !important;
}

.login-card .form-label{
  color:#334a69 !important;
  font-size:.88rem !important;
  font-weight:850 !important;
  letter-spacing:-.01em;
}

.login-card .form-control{
  min-height:54px !important;
  border:1px solid #cfd9ea !important;
  border-radius:15px !important;
  background:rgba(255,255,255,.92) !important;
  color:#10213a !important;
  padding:13px 15px !important;
  font-weight:650;
  box-shadow:0 8px 20px rgba(19,38,72,.05), inset 0 1px 0 rgba(255,255,255,.88);
}

.login-card .form-control:focus{
  border-color:rgba(17,103,216,.72) !important;
  box-shadow:0 0 0 4px rgba(17,103,216,.14), 0 12px 28px rgba(17,103,216,.10) !important;
}

.login-card .form-control::placeholder{
  color:#8b98ac !important;
  font-weight:600;
}

.login-card .btn-primary{
  min-height:56px !important;
  margin-top:6px !important;
  border-radius:16px !important;
  background:linear-gradient(90deg,#003395 0%,#0d66d3 48%,#9ee51e 100%) !important;
  color:#fff !important;
  font-size:1rem !important;
  font-weight:900 !important;
  letter-spacing:-.015em;
  box-shadow:0 18px 34px rgba(8,84,190,.28), 0 10px 24px rgba(158,229,30,.15) !important;
}

.login-card .btn-primary:hover:not(:disabled){
  transform:translateY(-2px) !important;
  box-shadow:0 24px 42px rgba(8,84,190,.34), 0 14px 30px rgba(158,229,30,.19) !important;
}

.login-card .btn-primary::after{
  content:"";
  position:absolute;
}

.login-card > .glass-card::after,
.login-card > .card::after{
  content:"Sistema profesional para la gestión de torneos";
  display:block;
  margin-top:22px;
  padding-top:18px;
  border-top:1px solid rgba(207,217,234,.82);
  color:#7b88a0;
  text-align:center;
  font-size:.9rem;
  font-weight:700;
}

.login-card .alert-danger{
  border-radius:16px !important;
  font-weight:750;
}

@keyframes eliteLoginIn{
  from{opacity:0;transform:translateY(14px) scale(.985)}
  to{opacity:1;transform:translateY(0) scale(1)}
}

@media (max-width:1100px){
  .login-screen{
    grid-template-columns:minmax(0,1fr) minmax(390px,.86fr) !important;
  }
  .login-hero{
    padding:44px !important;
  }
  .login-hero .app-brand{
    width:min(500px,94%);
  }
}

@media (max-width:920px){
  .login-screen{
    display:block !important;
    background:linear-gradient(180deg,#061936 0 44%,#f3f7fc 44% 100%) !important;
    overflow:auto !important;
  }
  .login-hero{
    display:flex !important;
    min-height:390px;
    padding:34px 22px 96px !important;
    gap:18px;
    text-align:left;
  }
  .login-hero .app-brand{
    width:min(390px,96%);
    height:136px;
  }
  .login-hero h1{
    font-size:clamp(2.05rem,8vw,3.15rem) !important;
  }
  .login-hero p{
    font-size:.98rem !important;
    line-height:1.55 !important;
  }
  .login-hero::after{
    white-space:normal;
    border-radius:20px;
    font-size:.8rem;
    line-height:1.45;
  }
  .login-panel{
    display:block !important;
    margin-top:-78px;
    padding:0 16px 28px !important;
    background:transparent !important;
  }
  .login-card{
    margin:0 auto;
  }
}

@media (max-width:520px){
  .login-hero{
    min-height:340px;
    padding-bottom:76px !important;
  }
  .login-hero .app-brand{
    height:104px;
  }
  .login-hero p{
    display:none;
  }
  .login-hero::after{
    display:none;
  }
  .login-card > .glass-card,
  .login-card > .card{
    padding:24px 20px !important;
    border-radius:24px !important;
  }
  .login-brand .brand-mark{
    width:128px !important;
    height:46px !important;
  }
}
