.login-page {
  min-height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--space-6) var(--space-4);
  background: var(--bg);
  color: var(--text-primary);
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 400;
  line-height: var(--line-height-body);
  user-select: none;
  -webkit-user-select: none;
}

.login-page ::selection {
  background: transparent;
  color: inherit;
}

.login-shell {
  width: 100%;
  max-width: 360px;
  display: flex;
  flex-direction: column;
  gap: var(--space-5);
}

.login-brand {
  text-align: center;
}

.login-logo {
  display: block;
  margin: 0 auto var(--space-3);
  width: auto;
  height: calc(var(--text-xs) * var(--line-height-tight) * 7);
  max-width: 100%;
  object-fit: contain;
  object-position: center;
  -webkit-user-drag: none;
  pointer-events: none;
}

.login-title {
  margin: 0;
  font-size: var(--text-md);
  font-weight: 500;
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--text-primary);
}

.login-sub {
  margin: var(--space-2) 0 0;
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  line-height: var(--line-height-tight);
  color: var(--text-muted);
}

.login-card {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  padding: var(--space-5);
  background: var(--surface-2);
  border: var(--border-hairline);
  border-top: 1px solid var(--edge-light);
  border-radius: var(--radius-lg);
}

html[data-theme="light"] .login-card {
  border-top: none;
  box-shadow: var(--card-shadow-light);
}

.login-error {
  margin: 0;
  padding: var(--space-2) var(--space-3);
  font-family: var(--font-mono);
  font-size: var(--text-xs);
  color: var(--signal);
  border: 0.5px solid var(--signal-edge);
  border-radius: var(--radius-sm);
  background: color-mix(in srgb, var(--signal) 8%, transparent);
}

.login-field {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.login-label {
  font-size: var(--text-xs);
  font-weight: 500;
  letter-spacing: var(--tracking-wide);
  text-transform: uppercase;
  color: var(--text-secondary);
}

.login-input {
  min-height: var(--size-tool);
  padding: var(--space-2) var(--space-3);
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 400;
  color: var(--text-primary);
  background: var(--surface-1);
  border: var(--border-hairline);
  border-top: 1px solid var(--edge-light);
  border-radius: var(--radius-sm);
  outline: none;
  user-select: text;
  -webkit-user-select: text;
  transition: border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);
}

html[data-theme="light"] .login-input {
  border-top: var(--border-hairline);
}

.login-input::selection {
  background: color-mix(in srgb, var(--accent) 35%, transparent);
  color: var(--text-primary);
}

.login-input:focus {
  border-color: var(--accent);
  background: var(--surface-3);
}

.login-submit {
  min-height: var(--size-tool);
  margin-top: var(--space-1);
  padding: var(--space-2) var(--space-4);
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: 500;
  letter-spacing: var(--tracking-wider);
  text-transform: uppercase;
  color: var(--accent-fg);
  background: var(--accent);
  border: var(--border-pinned);
  border-radius: var(--radius-sm);
  cursor: pointer;
  user-select: none;
  transition: filter var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);
}

.login-submit:hover {
  filter: brightness(1.08);
}

.login-submit:active {
  transform: scale(0.98);
}

.login-submit::selection {
  background: transparent;
}
