:root{
  --bg:#f3f6fd;
  --card:rgba(255,255,255,.96);
  --text:#111a33;
  --muted:#7d879d;
  --line:#dfe5ef;
  --accent:#6f43f4;
  --accent-2:#307bf4;
  --danger:#c9364b;
  --shadow:0 32px 90px rgba(31,44,82,.16);
}
*{box-sizing:border-box}
html,body{min-height:100%}
body{
  margin:0;
  color:var(--text);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  background:
    radial-gradient(circle at 12% 16%,rgba(120,87,235,.15),transparent 31%),
    radial-gradient(circle at 88% 84%,rgba(48,123,244,.14),transparent 32%),
    linear-gradient(135deg,#f7f5ff 0%,#f6f8ff 48%,#eff6ff 100%);
}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:28px}
.login-card{
  width:min(590px,100%);
  padding:78px 64px 64px;
  background:var(--card);
  border:1px solid rgba(218,224,236,.92);
  border-radius:34px;
  box-shadow:var(--shadow);
  backdrop-filter:blur(18px);
}
.brand{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:18px;
  margin-bottom:55px;
  color:inherit;
  text-decoration:none;
  text-align:center;
}
.logo{
  position:relative;
  display:grid;
  place-items:center;
  width:78px;
  height:78px;
  filter:drop-shadow(0 12px 22px rgba(93,83,238,.23));
}
.logo::before{
  content:"";
  position:absolute;
  inset:3px;
  border-radius:28px 14px 28px 14px;
  background:linear-gradient(145deg,#bd38f1 0%,#6d4df4 47%,#22a4f4 100%);
  transform:rotate(-8deg);
}
.logo span{
  position:relative;
  z-index:1;
  color:#fff;
  font-size:43px;
  line-height:1;
  font-weight:950;
  font-style:italic;
  letter-spacing:-.14em;
  transform:translateX(-2px);
}
.brand strong{font-size:42px;line-height:1;font-weight:900;letter-spacing:-.045em}
.brand strong span{color:#101930}
.brand strong em{font-style:normal;background:linear-gradient(100deg,#7040ed,#347cf4);-webkit-background-clip:text;background-clip:text;color:transparent}
form label{display:block;margin:24px 0 10px;font-size:15px;font-weight:850}
.field{
  display:flex;
  align-items:center;
  gap:15px;
  height:68px;
  padding:0 18px;
  border:1px solid var(--line);
  border-radius:16px;
  background:rgba(250,251,254,.9);
  transition:border-color .16s,box-shadow .16s,background .16s;
}
.field:focus-within{border-color:var(--accent);background:#fff;box-shadow:0 0 0 5px rgba(111,67,244,.09)}
.field>svg{width:23px;height:23px;flex:0 0 auto;fill:#8f99ae}
.field input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:var(--text);font:inherit;font-size:18px}
.field input::placeholder{color:#6f7890;opacity:1}
.field button{display:grid;place-items:center;width:40px;height:40px;padding:0;border:0;border-radius:11px;background:transparent;color:#8d97ab;cursor:pointer}
.field button:hover{background:#eef1f7}
.field button svg{width:24px;height:24px;fill:currentColor}
.error{margin:18px 0 0;padding:12px 14px;border-radius:12px;background:#fff0f2;color:var(--danger);font-size:13px;font-weight:750}
.submit{
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
  width:100%;
  height:64px;
  margin-top:32px;
  padding:0 22px;
  border:0;
  border-radius:16px;
  background:linear-gradient(100deg,var(--accent),var(--accent-2));
  color:#fff;
  font-size:18px;
  font-weight:900;
  cursor:pointer;
  box-shadow:0 14px 30px rgba(86,83,237,.28);
  transition:transform .16s,box-shadow .16s,opacity .16s;
}
.submit:hover{transform:translateY(-1px);box-shadow:0 18px 38px rgba(86,83,237,.34)}
.submit:active{transform:translateY(0)}
.submit:disabled{opacity:.65;cursor:wait;transform:none}
.submit b{position:absolute;right:24px;font-size:26px;font-weight:400;line-height:1}
@media(max-width:640px){
  .login-shell{padding:16px}
  .login-card{padding:52px 25px 36px;border-radius:26px}
  .brand{margin-bottom:40px}
  .logo{width:66px;height:66px}
  .logo span{font-size:36px}
  .brand strong{font-size:34px}
  .field{height:60px}
  .field input{font-size:16px}
  .submit{height:58px}
}
