/* ==========================================================================
   EDU APP ID — Halaman Masuk (login)
   ========================================================================== */
:root{
  --ea-brand:#4f46e5; --ea-brand-2:#7c3aed; --ea-accent:#22d3ee;
  --ea-grad:linear-gradient(135deg,#4f46e5 0%,#7c3aed 100%);
  --ea-side:radial-gradient(130% 150% at 10% 0%,#2b1a63 0%,#191f4e 48%,#0c1027 100%);
  --ea-ink:#0f172a; --ea-ink2:#334155; --ea-muted:#64748b; --ea-line:#e3e8f5;
  --ea-font:'Plus Jakarta Sans','Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
}
*{ box-sizing:border-box; }
html,body{ height:100%; }
body{
  margin:0; font-family:var(--ea-font);
  background:var(--ea-side);
  -webkit-font-smoothing:antialiased;
}

/* Pembungkus layar terbagi */
.login-shell{
  min-height:100vh;
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(380px,1fr);
}
@media (max-width: 960px){ .login-shell{ grid-template-columns:1fr; } }

/* Panel kiri: merek */
.login-brand-panel{
  position:relative;
  display:flex; flex-direction:column; justify-content:space-between;
  padding:3rem 4rem;
  overflow:hidden;
}
.login-brand-panel::after{
  content:""; position:absolute; right:-140px; top:-140px; width:460px;height:460px;
  border-radius:50%; background:radial-gradient(circle at 30% 30%, rgba(34,211,238,.28), transparent 62%);
}
.login-brand-panel::before{
  content:""; position:absolute; left:-120px; bottom:-160px; width:520px;height:520px;
  border-radius:50%; background:radial-gradient(circle at 60% 40%, rgba(124,58,237,.38), transparent 60%);
}
@media (max-width: 960px){ .login-brand-panel{ display:none; } }

.brand-top{ display:flex;align-items:center;gap:.8rem; position:relative; z-index:2; }
.brand-mark{ width:48px;height:48px; }
.brand-word{ color:#fff; font-weight:800; font-size:clamp(1.05rem,1.6vw,1.5rem); letter-spacing:.02em; line-height:1.2; max-width:100%; }
.brand-word small{ line-height:1.5; }
.brand-mark{ object-fit:contain; border-radius:12px; background:#fff; }
.brand-word small{ display:block; font-size:.6rem; color:#a5b4fc; letter-spacing:.22em; font-weight:800; text-transform:uppercase; }

.brand-hero{ position:relative; z-index:2; max-width:560px; }
.brand-hero h1{ color:#fff; font-size:2.5rem; font-weight:800; line-height:1.25; margin:0 0 1rem; }
.brand-hero h1 em{ font-style:normal; background:linear-gradient(90deg,#818cf8,#22d3ee); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.brand-hero p{ color:#c7d2fe; font-size:1.02rem; line-height:1.75; margin:0 0 2.2rem; }
.brand-points{ display:grid; grid-template-columns:1fr 1fr; gap:.9rem; }
@media (max-width:1200px){ .brand-points{ grid-template-columns:1fr; } }
.bp{
  display:flex; gap:.7rem; align-items:flex-start;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12);
  border-radius:16px; padding:.9rem 1rem; backdrop-filter:blur(4px);
}
.bp i{ color:var(--ea-accent); font-size:1.1rem; margin-top:.15rem; width:1.3rem; text-align:center; }
.bp b{ display:block; color:#fff; font-size:.88rem; }
.bp span{ color:#a5b4fc; font-size:.76rem; font-weight:600; line-height:1.5; }

.brand-foot{ color:#8b93c4; font-size:.78rem; font-weight:600; position:relative; z-index:2; }

/* Panel kanan: formulir */
.login-form-panel{
  background:#f6f7fd;
  display:flex; align-items:center; justify-content:center;
  padding:3rem 2rem;
}
.login-card{
  width:100%; max-width:430px;
  background:#fff; border:1px solid var(--ea-line); border-radius:24px;
  padding:2.5rem 2.4rem 2rem;
  box-shadow:0 30px 70px -30px rgba(23,26,90,.45);
}
.login-card .m-brand{ display:none; }
@media (max-width: 960px){
  .login-form-panel{ background:var(--ea-side); }
  .login-card{ box-shadow:0 30px 70px -30px rgba(0,0,0,.7); border-color:rgba(255,255,255,.14); background:rgba(255,255,255,.98); }
  .login-card .m-brand{ display:flex; align-items:center; gap:.6rem; margin-bottom:1.4rem; }
  .login-card .m-brand img{ width:40px; }
  .login-card .m-brand b{ color:#fff; }
}
.login-card h2{ margin:0 0 .35rem; font-size:1.45rem; font-weight:800; color:var(--ea-ink); }
.login-card .lead{ margin:0 0 1.6rem; color:var(--ea-muted); font-size:.92rem; font-weight:500; line-height:1.6; }
.form-field{ margin-bottom:1.05rem; }
.form-field label{ display:block; font-size:.8rem; font-weight:700; color:var(--ea-ink2); margin-bottom:.38rem; }
.input-wrap{ position:relative; }
.input-wrap i{
  position:absolute; left:.95rem; top:50%; transform:translateY(-50%);
  color:#9aa5c0; font-size:.95rem;
}
.input-wrap input{
  width:100%; border:1.5px solid #dde3f1; border-radius:12px;
  padding:.72rem 1rem .72rem 2.6rem; font-size:.92rem; font-family:inherit;
  color:var(--ea-ink2); background:#fff;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.input-wrap input:focus{
  outline:none; border-color:var(--ea-brand);
  box-shadow:0 0 0 4px rgba(79,70,229,.14);
}
.btn-login{
  width:100%; margin-top:.5rem;
  border:none; border-radius:12px; padding:.8rem 1rem;
  font-family:inherit; font-size:.95rem; font-weight:800; color:#fff;
  background:var(--ea-grad); cursor:pointer;
  box-shadow:0 14px 26px -12px rgba(79,70,229,.9);
  transition:transform .12s ease, box-shadow .12s ease, filter .12s ease;
}
.btn-login:hover{ filter:brightness(1.06); transform:translateY(-1px); }
.btn-login:active{ transform:translateY(0); }
.btn-login i{ margin-right:.4rem; }
.login-foot{ margin-top:1.6rem; text-align:center; color:var(--ea-muted); font-size:.78rem; font-weight:600; }
.login-foot b{ color:var(--ea-brand); }
