:root{
  --bg-deep:#24104f;
  --bg-mid:#4c1d95;
  --bg-soft:#ede9fe;
  --surface:rgba(255,255,255,.90);
  --surface-border:rgba(255,255,255,.34);
  --text:#1f2340;
  --muted:#5d6485;
  --brand:#6d28d9;
  --brand-2:#8b5cf6;
  --brand-3:#a78bfa;
  --warm:#f59e0b;
  --shadow:0 24px 60px rgba(24, 16, 58, .22);
  --radius-xl:32px;
  --radius-lg:22px;
  --input-h:64px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: "Segoe UI", Inter, Arial, sans-serif;
  color:#fff;
  background:
    radial-gradient(circle at top left, rgba(255,255,255,.18), transparent 30%),
    radial-gradient(circle at top right, rgba(196,181,253,.28), transparent 24%),
    linear-gradient(130deg, #1c0d44 0%, #4c1d95 44%, #6d28d9 100%);
}
.login-shell{
  min-height:100vh;
  display:grid;
  grid-template-columns: 1.15fr .85fr;
  gap:32px;
  align-items:stretch;
  padding:28px;
}
.brand-panel{
  position:relative;
  min-height:720px;
  border-radius:38px;
  overflow:hidden;
  box-shadow: var(--shadow);
  isolation:isolate;
}
.brand-panel::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(28,13,68,.68) 0%, rgba(38,18,88,.50) 35%, rgba(28,13,68,.82) 100%),
    linear-gradient(90deg, rgba(28,13,68,.80) 0%, rgba(28,13,68,.28) 55%, rgba(28,13,68,.12) 100%);
  z-index:1;
}
.brand-photo{
  position:absolute; inset:0;
  width:100%; height:100%; object-fit:cover;
  transform:scale(1.02);
}
.brand-content{
  position:relative; z-index:2;
  display:flex; flex-direction:column; justify-content:space-between;
  height:100%; padding:44px 44px 38px;
}
.brand-top{max-width:640px}
.brand-mark{display:flex; align-items:center; gap:18px; margin-bottom:24px}
.brand-mark img{width:88px; height:88px; object-fit:contain; filter:drop-shadow(0 10px 18px rgba(0,0,0,.18))}
.brand-title{font-size:4rem; line-height:1; font-weight:900; letter-spacing:-.04em; margin:0}
.brand-subtitle{margin:10px 0 0; font-size:1.15rem; color:rgba(255,255,255,.92)}
.brand-divider{height:1px; width:100%; background:linear-gradient(90deg, rgba(255,255,255,.35), rgba(255,255,255,.04)); margin:26px 0 28px}
.brand-slogan{font-size:3.1rem; line-height:1.1; font-weight:700; letter-spacing:-.04em; margin:0 0 18px; max-width:680px}
.brand-copy{font-size:1.25rem; line-height:1.65; color:rgba(255,255,255,.90); margin:0; max-width:620px}
.brand-footer{max-width:620px}
.brand-note{font-size:1.08rem; line-height:1.7; color:rgba(255,255,255,.90); margin:0}
.auth-wrap{
  display:flex; align-items:center; justify-content:center;
}
.auth-card{
  width:min(100%, 560px);
  background:linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.86));
  backdrop-filter:blur(14px);
  border:1px solid var(--surface-border);
  border-radius:var(--radius-xl);
  box-shadow:var(--shadow);
  padding:34px 34px 28px;
  color:var(--text);
}
.auth-brand{display:flex; align-items:center; gap:16px; margin-bottom:26px}
.auth-brand img{width:72px; height:72px; object-fit:contain}
.auth-brand h2{margin:0; font-size:3rem; line-height:1; letter-spacing:-.04em; color:#2f1a72}
.auth-brand p{margin:8px 0 0; font-size:1.08rem; color:#4f46a5}
.auth-headline{font-size:2.25rem; line-height:1.1; margin:12px 0 10px; letter-spacing:-.03em; color:#312e81}
.auth-text{margin:0 0 24px; font-size:1.18rem; color:var(--muted); line-height:1.55}
.login-form{display:grid; gap:16px}
.field{position:relative}
.field input{
  width:100%; height:var(--input-h); border-radius:18px;
  border:1px solid rgba(124,58,237,.16);
  background:#fff; color:var(--text); font-size:1.05rem;
  padding:0 18px 0 58px; outline:none; transition:.2s ease;
  box-shadow:0 10px 26px rgba(76,29,149,.06);
}
.field input:focus{
  border-color:rgba(124,58,237,.55);
  box-shadow:0 0 0 4px rgba(139,92,246,.14), 0 16px 34px rgba(76,29,149,.10);
}
.field .icon{
  position:absolute; left:18px; top:50%; transform:translateY(-50%);
  width:24px; height:24px; color:#7c3aed; opacity:.92;
}
.btn-login{
  margin-top:10px; height:66px; border:0; border-radius:20px; cursor:pointer;
  font-size:1.15rem; font-weight:800; letter-spacing:.01em; color:#fff;
  background:linear-gradient(90deg, var(--brand) 0%, var(--brand-2) 62%, #60a5fa 100%);
  box-shadow:0 18px 34px rgba(109,40,217,.28);
  transition:transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.btn-login:hover{transform:translateY(-1px); filter:saturate(1.03); box-shadow:0 22px 38px rgba(109,40,217,.33)}
.btn-login:active{transform:translateY(0)}
.auth-meta{
  display:flex; align-items:center; justify-content:space-between; gap:18px;
  padding:18px 2px 12px; margin-top:10px; border-top:1px solid rgba(76,29,149,.10);
}
.check-inline{display:flex; align-items:center; gap:10px; color:#4b5563; font-size:1rem}
.check-inline input{width:18px; height:18px; accent-color:var(--brand)}
.auth-link{color:#6d28d9; text-decoration:none; font-weight:700}
.auth-link:hover{text-decoration:underline}
.auth-foot{
  margin-top:18px; padding-top:18px; border-top:1px solid rgba(76,29,149,.10);
  color:#4b5563; font-size:1rem; line-height:1.6;
}
.wave-glow{
  position:fixed; inset:auto -10vw -18vh auto; width:60vw; height:40vh; z-index:-1;
  background:radial-gradient(circle, rgba(245,158,11,.30), rgba(245,158,11,0) 55%);
  pointer-events:none;
}
.flash{
  padding:14px 16px; border-radius:16px; margin-bottom:16px; font-size:.98rem;
  background:rgba(239,68,68,.08); border:1px solid rgba(239,68,68,.18); color:#991b1b;
}
@media (max-width: 1180px){
  .login-shell{grid-template-columns:1fr; padding:16px}
  .brand-panel{min-height:560px}
  .auth-wrap{padding-bottom:12px}
}
@media (max-width: 720px){
  .brand-content{padding:28px 24px 26px}
  .brand-mark img{width:70px; height:70px; object-fit:contain}
  .brand-title{font-size:2.8rem}
  .brand-slogan{font-size:2.2rem}
  .brand-copy,.brand-note{font-size:1rem}
  .auth-card{padding:26px 20px 22px; border-radius:24px}
  .auth-brand img{width:58px;height:58px;object-fit:contain}
  .auth-brand h2{font-size:2.35rem}
  .auth-headline{font-size:1.85rem}
  .auth-text{font-size:1rem}
  .auth-meta{flex-direction:column; align-items:flex-start}
}
