:root {
  color-scheme: dark;
  --bg: #080d19;
  --surface: rgba(16, 25, 43, .84);
  --line: rgba(143, 163, 190, .19);
  --text: #f5f7fc;
  --muted: #8d9bb2;
  --purple: #7c3aed;
  --purple-light: #a78bfa;
  --green: #62e6aa;
  --danger: #ff8193;
}

* { box-sizing: border-box; }

html,
body {
  min-height: 100%;
}

body {
  margin: 0;
  overflow-x: hidden;
  background:
    radial-gradient(circle at 22% 46%, rgba(124, 58, 237, .18), transparent 28rem),
    radial-gradient(circle at 80% 38%, rgba(58, 123, 213, .10), transparent 32rem),
    linear-gradient(145deg, #070b14, #0a1120 60%, #080c16);
  color: var(--text);
  font: 15px/1.5 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.login-page {
  display: grid;
  min-height: 100vh;
  place-items: center;
  position: relative;
  isolation: isolate;
}

.login-page::before,
.login-page::after {
  position: fixed;
  z-index: -3;
  width: 760px;
  height: 760px;
  border: 1px solid rgba(167, 139, 250, .06);
  border-radius: 50%;
  content: "";
}

.login-page::before {
  top: -470px;
  left: -220px;
  box-shadow:
    0 0 0 100px rgba(167, 139, 250, .018),
    0 0 0 210px rgba(167, 139, 250, .012);
}

.login-page::after {
  right: -430px;
  bottom: -520px;
  box-shadow:
    0 0 0 120px rgba(98, 230, 170, .012),
    0 0 0 250px rgba(98, 230, 170, .008);
}

.network-background {
  position: fixed;
  z-index: -2;
  inset: 0;
  overflow: hidden;
  opacity: .65;
  background-image:
    radial-gradient(circle at 7% 22%, rgba(167, 139, 250, .65) 0 2px, transparent 3px),
    radial-gradient(circle at 18% 73%, rgba(98, 230, 170, .48) 0 2px, transparent 3px),
    radial-gradient(circle at 31% 14%, rgba(167, 139, 250, .48) 0 2px, transparent 3px),
    radial-gradient(circle at 46% 82%, rgba(98, 230, 170, .42) 0 2px, transparent 3px),
    radial-gradient(circle at 63% 18%, rgba(167, 139, 250, .52) 0 2px, transparent 3px),
    radial-gradient(circle at 78% 72%, rgba(98, 230, 170, .46) 0 2px, transparent 3px),
    radial-gradient(circle at 93% 31%, rgba(167, 139, 250, .56) 0 2px, transparent 3px);
}

.network-background::before,
.network-background::after {
  position: absolute;
  inset: -10%;
  background:
    linear-gradient(28deg, transparent 20%, rgba(167, 139, 250, .055) 20.1%, transparent 20.5%),
    linear-gradient(152deg, transparent 37%, rgba(98, 230, 170, .045) 37.1%, transparent 37.5%),
    linear-gradient(12deg, transparent 62%, rgba(167, 139, 250, .05) 62.1%, transparent 62.5%);
  content: "";
}

.network-background::after {
  transform: rotate(180deg) scale(.9);
}

.network-line {
  position: absolute;
  height: 1px;
  transform-origin: left center;
  background: linear-gradient(90deg, transparent, rgba(167, 139, 250, .16), transparent);
}

.line-one { top: 24%; left: 5%; width: 42%; transform: rotate(14deg); }
.line-two { top: 67%; left: 12%; width: 38%; transform: rotate(-17deg); }
.line-three { top: 29%; left: 57%; width: 41%; transform: rotate(-11deg); }
.line-four { top: 74%; left: 53%; width: 39%; transform: rotate(18deg); }

.login-shell {
  display: grid;
  width: min(1080px, calc(100% - 48px));
  grid-template-columns: minmax(0, 1fr) 1px minmax(370px, .78fr);
  align-items: center;
  gap: clamp(48px, 7vw, 96px);
}

.login-brand {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(22px, 3vw, 38px);
  min-height: 430px;
}

.login-brand img {
  position: relative;
  z-index: 1;
  width: clamp(150px, 18vw, 210px);
  height: clamp(150px, 18vw, 210px);
  padding: 18px;
  border-radius: 38px;
  background: #fff;
  object-fit: contain;
  box-shadow:
    0 30px 80px rgba(0, 0, 0, .38),
    0 0 55px rgba(124, 58, 237, .16);
}

.brand-glow {
  position: absolute;
  top: 50%;
  left: 28%;
  width: 280px;
  height: 280px;
  border-radius: 50%;
  background: rgba(124, 58, 237, .14);
  filter: blur(70px);
  transform: translate(-50%, -50%);
}

.login-brand > div:last-child {
  position: relative;
  z-index: 1;
}

.login-brand p {
  margin: 0 0 5px;
  color: var(--purple-light);
  font-size: 12px;
  font-weight: 850;
  letter-spacing: .22em;
}

.login-brand h1 {
  margin: 0;
  font-size: clamp(48px, 6vw, 78px);
  line-height: .95;
  letter-spacing: -.07em;
}

.login-brand h1 span {
  display: block;
  color: transparent;
  -webkit-text-stroke: 1px rgba(167, 139, 250, .78);
}

.login-brand strong {
  display: block;
  margin-top: 17px;
  color: var(--muted);
  font-size: 14px;
  font-weight: 600;
}

.login-divider {
  width: 1px;
  height: 430px;
  background: linear-gradient(transparent, rgba(167, 139, 250, .36), transparent);
}

.login-panel {
  width: 100%;
  padding: 34px;
  border: 1px solid var(--line);
  border-radius: 22px;
  background:
    linear-gradient(145deg, rgba(21, 31, 52, .88), rgba(12, 19, 34, .88));
  box-shadow: 0 28px 90px rgba(0, 0, 0, .36);
  backdrop-filter: blur(20px);
}

.login-panel header { margin-bottom: 25px; }

.login-panel header h2 {
  margin: 0;
  font-size: 28px;
  letter-spacing: -.035em;
}

.login-panel header > p:last-child {
  margin: 7px 0 0;
  color: var(--muted);
  font-size: 13px;
}

.login-eyebrow {
  margin: 0 0 7px;
  color: var(--purple-light);
  font-size: 10px;
  font-weight: 850;
  letter-spacing: .17em;
  text-transform: uppercase;
}

.login-error {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 18px;
  padding: 11px 12px;
  border: 1px solid rgba(255, 129, 147, .26);
  border-radius: 10px;
  background: rgba(255, 92, 116, .08);
  color: #ffc8d0;
  font-size: 11px;
}

.login-error span {
  display: grid;
  width: 21px;
  height: 21px;
  flex: 0 0 auto;
  place-items: center;
  border-radius: 50%;
  background: rgba(255, 129, 147, .15);
  font-weight: 900;
}

.login-error p { margin: 0; }

.login-panel label {
  display: block;
  margin: 0 0 7px;
  color: #c0cad9;
  font-size: 11px;
  font-weight: 750;
}

.login-field {
  display: flex;
  align-items: center;
  gap: 11px;
  margin-bottom: 16px;
  padding: 0 14px;
  border: 1px solid rgba(143, 163, 190, .24);
  border-radius: 11px;
  background: rgba(6, 11, 21, .55);
  transition: border-color .15s, box-shadow .15s, background .15s;
}

.login-field:focus-within {
  border-color: rgba(167, 139, 250, .78);
  background: rgba(8, 14, 26, .82);
  box-shadow: 0 0 0 3px rgba(124, 58, 237, .12);
}

.login-field svg {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  fill: none;
  stroke: var(--purple-light);
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.login-field input {
  width: 100%;
  height: 50px;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--text);
  font: inherit;
  font-size: 13px;
}

.login-field input::placeholder { color: #65728a; }

.login-panel button {
  display: flex;
  width: 100%;
  height: 50px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  margin-top: 23px;
  border: 0;
  border-radius: 11px;
  background: linear-gradient(135deg, #8b5cf6, #6d3de8);
  box-shadow: 0 14px 32px rgba(124, 58, 237, .25);
  color: #fff;
  cursor: pointer;
  font: inherit;
  font-size: 12px;
  font-weight: 850;
  letter-spacing: .07em;
  text-transform: uppercase;
  transition: filter .15s, transform .15s;
}

.login-panel button:hover {
  filter: brightness(1.1);
  transform: translateY(-1px);
}

.login-panel button:active { transform: translateY(0); }

.login-panel button svg {
  width: 17px;
  height: 17px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.login-security {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin-top: 19px;
  color: var(--muted);
  font-size: 10px;
}

.security-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--green);
  box-shadow: 0 0 0 4px rgba(98, 230, 170, .08);
}

.login-footer {
  position: fixed;
  right: 0;
  bottom: 24px;
  left: 0;
  display: flex;
  justify-content: center;
  gap: 8px;
  color: #5f6d84;
  font-size: 10px;
}

.login-footer span:first-child {
  color: #8795aa;
  font-weight: 800;
}

@media (max-width: 900px) {
  .login-page {
    align-items: start;
    padding: 38px 0 80px;
  }

  .login-shell {
    width: min(480px, calc(100% - 32px));
    grid-template-columns: 1fr;
    gap: 25px;
  }

  .login-brand {
    justify-content: flex-start;
    min-height: auto;
  }

  .login-brand img {
    width: 92px;
    height: 92px;
    padding: 10px;
    border-radius: 22px;
  }

  .login-brand h1 { font-size: 39px; }
  .login-brand p { font-size: 9px; }
  .login-brand strong { margin-top: 10px; font-size: 11px; }
  .login-divider { display: none; }
  .brand-glow { width: 170px; height: 170px; }
  .login-footer { position: static; margin-top: 28px; }
}

@media (max-width: 480px) {
  .login-page { padding-top: 26px; }
  .login-shell { width: min(100% - 24px, 420px); }
  .login-brand { gap: 15px; padding: 0 5px; }
  .login-brand img { width: 76px; height: 76px; border-radius: 18px; }
  .login-brand h1 { font-size: 32px; }
  .login-brand strong { font-size: 10px; }
  .login-panel { padding: 25px 20px; border-radius: 18px; }
  .login-panel header h2 { font-size: 24px; }
  .login-footer { flex-direction: column; align-items: center; gap: 0; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition: none !important;
  }
}
