/* Link Atom */
.link {
  display: inline-flex;
  align-items: center;
  gap: var(--space-1);
  font-family: var(--font-family-sans);
  color: var(--color-primary);
  transition: color var(--duration-150) var(--easing-out);
  cursor: pointer;
}

.link:hover { color: var(--color-primary-hover); }
.link:focus-visible {
  outline: var(--border-width-2) solid var(--border-focus);
  outline-offset: var(--border-width-2);
  border-radius: var(--border-radius-sm);
}

.link-default { color: var(--color-primary); }
.link-secondary { color: var(--text-secondary); }
.link-danger { color: var(--color-error); }
.link-muted { color: var(--text-muted); }

.link-underline-always { text-decoration: underline; }
.link-underline-hover { text-decoration: none; }
.link-underline-hover:hover { text-decoration: underline; }
.link-underline-none { text-decoration: none; }

.link-sm { font-size: var(--text-xs); }
.link-md { font-size: var(--text-sm); }
.link-lg { font-size: var(--text-base); }

.link-disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

.link-icon svg, .link-external-icon {
  flex-shrink: 0;
  stroke-width: 2;
}

.link-external-icon {
  margin-left: var(--space-0_5);
  opacity: 0.6;
}
