.login-page {
  min-height: 100vh;
  background:
    radial-gradient(circle at 12% 18%, hsl(262 var(--tint-s) var(--tint-l)) 0, transparent 38%),
    radial-gradient(circle at 88% 82%, hsl(199 var(--tint-s) var(--tint-l)) 0, transparent 40%),
    radial-gradient(circle at 80% 10%, hsl(320 var(--band-s) var(--band-l)) 0, transparent 30%);
  display: grid; place-items: center;
  padding-inline: 16px; padding-block: 32px;
}
.login-wrap { width: 100%; max-width: 400px; display: grid; gap: 20px; }

.brand { display: flex; align-items: center; gap: 12px; }
.brand-mark {
  width: 40px; height: 40px; border-radius: 10px;
  display: grid; place-items: center;
  background: var(--accent); color: var(--accent-fg);
}
.brand-mark svg { width: 22px; height: 22px; }
.brand-name { font-weight: 700; font-size: 17px; }
.brand-tag { font-family: var(--font-mono); font-size: 12px; color: var(--muted); }

.login-card {
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg);
  padding: 24px 20px; box-shadow: var(--shadow-pop); border-top: 3px solid var(--accent);
  display: grid; gap: 18px;
}
.login-card h1 { font-size: 22px; }
.login-card form { display: grid; gap: 16px; }
.login-head { display: grid; gap: 4px; }

.steps { display: flex; gap: 6px; }
.steps span { height: 4px; flex: 1; border-radius: 2px; background: var(--surface-2); }
.steps span.on { background: var(--accent); }

.otp-input {
  font-family: var(--font-mono); font-size: 24px; letter-spacing: .5em;
  text-align: center; padding-left: .5em !important;
}
.otp-meta { display: flex; justify-content: space-between; align-items: center; gap: 12px; font-size: 14px; flex-wrap: wrap; }

.demo-box {
  border: 1px dashed var(--line); border-radius: var(--r-md);
  padding: 14px 16px; display: grid; gap: 10px; font-size: 14px;
}
.demo-row { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.demo-row button { font-size: 14px; }
.demo-row .mono { color: var(--muted); font-size: 13px; }

.theme-corner { position: fixed; top: calc(8px + env(safe-area-inset-top, 0px)); right: 8px; }
